Skip to content

Commit 5c3ccf1

Browse files
committed
add solution for 2023/09
1 parent 2dba0fd commit 5c3ccf1

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

2023/09.py

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import operator
2+
from functools import reduce
3+
4+
from aocd.models import Puzzle
5+
6+
puzzle = Puzzle(year=2023, day=9)
7+
input_data = puzzle.input_data.splitlines()
8+
example_input_data = puzzle.examples[0].input_data.splitlines()
9+
10+
11+
def part_a(data):
12+
result = 0
13+
for line in data:
14+
numbers = [[int(n) for n in line.split(" ")]]
15+
while not all([number == 0 for number in numbers[-1]]):
16+
numbers.append([numbers[-1][i] - numbers[-1][i-1] for i in range(1, len(numbers[-1]))])
17+
result += sum([n[-1] for n in numbers])
18+
return result
19+
20+
21+
def part_b(data):
22+
result = 0
23+
for line in data:
24+
numbers = [[int(n) for n in line.split(" ")]]
25+
while not all([number == 0 for number in numbers[-1]]):
26+
numbers.append([numbers[-1][i] - numbers[-1][i-1] for i in range(1, len(numbers[-1]))])
27+
number = numbers[-2][0]
28+
for n in list(reversed(numbers))[2:]:
29+
number = n[0] - number
30+
result += number
31+
return result
32+
33+
34+
if __name__ == '__main__':
35+
answer_a = part_a(input_data)
36+
print(f"Answer A: {answer_a}")
37+
puzzle.answer_a = answer_a
38+
answer_b = part_b(input_data)
39+
print(f"Answer B: {answer_b}")
40+
puzzle.answer_b = answer_b

0 commit comments

Comments
 (0)