[py] Port 2017_05
This commit is contained in:
parent
0bf180482b
commit
6712417f6a
4 changed files with 52 additions and 62 deletions
|
|
@ -1,56 +0,0 @@
|
|||
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)
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
0
|
||||
3
|
||||
0
|
||||
1
|
||||
-3
|
||||
Loading…
Add table
Add a link
Reference in a new issue