|
@@ -0,0 +1,12 @@
|
|
1
|
+def execute(instructions, incrementor, position=0):
|
|
2
|
+ while 0 <= position < len(instructions):
|
|
3
|
+ next_position = position + instructions[position]
|
|
4
|
+ instructions[position] += incrementor(instructions[position])
|
|
5
|
+ position = next_position
|
|
6
|
+ yield position
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+with open('data/05.txt', 'r') as file:
|
|
10
|
+ instructions = list(map(int, file.readlines()))
|
|
11
|
+ print(f'Part one: {sum(1 for _ in execute(list(instructions), lambda x: 1))}')
|
|
12
|
+ print(f'Part two: {sum(1 for _ in execute(list(instructions), lambda x: -1 if x >= 3 else 1))}')
|