File tree 1 file changed +40
-0
lines changed
1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments