Solve 2017/05

This commit is contained in:
Joscha 2018-12-04 09:25:50 +00:00
parent 7cfff295a2
commit 613b99f96e
3 changed files with 1096 additions and 0 deletions

1035
2017/05/input.txt Normal file

File diff suppressed because it is too large Load diff

56
2017/05/solve.py Normal file
View file

@ -0,0 +1,56 @@
import sys
# PART 1
def load_jumps(filename):
jumps = []
with open(filename, "r") as f:
for line in f:
jumps.append(int(line[:-1]))
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 main(filename):
jumps = load_jumps(filename)
print("Previously calculated")
print("Part 1: 343467")
print("Part 2: 24774780")
print(f"Solutions for {filename}")
steps = perform_jumps(jumps)
print(f"Part 1: {steps}")
steps_2 = perform_jumps_2(jumps)
print(f"Part 2: {steps_2}")
if __name__ == "__main__":
for filename in sys.argv[1:]:
main(filename)

5
2017/05/test_input.txt Normal file
View file

@ -0,0 +1,5 @@
0
3
0
1
-3