advent-of-code/py/aoc/y2017/d05.py
2022-12-06 19:42:20 +01:00

50 lines
881 B
Python

# PART 1
def load_jumps(inputstr):
jumps = []
for line in inputstr.splitlines():
jumps.append(int(line))
return jumps
def perform_jumps(jumps):
jumps = jumps.copy()
pos = 0
steps = 0
while 0 <= pos < len(jumps):
next_pos = pos + jumps[pos]
jumps[pos] += 1
pos = next_pos
steps += 1
return steps
# PART 2
def perform_jumps_2(jumps):
jumps = jumps.copy()
pos = 0
steps = 0
while 0 <= pos < len(jumps):
next_pos = pos + jumps[pos]
if jumps[pos] >= 3:
jumps[pos] -= 1
else:
jumps[pos] += 1
pos = next_pos
steps += 1
return steps
def solve(inputstr):
jumps = load_jumps(inputstr)
steps = perform_jumps(jumps)
print(f"Part 1: {steps}")
steps_2 = perform_jumps_2(jumps)
print(f"Part 2: {steps_2}")