Solve 2017/05
This commit is contained in:
parent
7cfff295a2
commit
613b99f96e
3 changed files with 1096 additions and 0 deletions
1035
2017/05/input.txt
Normal file
1035
2017/05/input.txt
Normal file
File diff suppressed because it is too large
Load diff
56
2017/05/solve.py
Normal file
56
2017/05/solve.py
Normal 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
5
2017/05/test_input.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
0
|
||||||
|
3
|
||||||
|
0
|
||||||
|
1
|
||||||
|
-3
|
||||||
Loading…
Add table
Add a link
Reference in a new issue