diff --git a/py/2017/05/solve.py b/py/2017/05/solve.py deleted file mode 100644 index d017819..0000000 --- a/py/2017/05/solve.py +++ /dev/null @@ -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) diff --git a/py/2017/05/test_input.txt b/py/2017/05/test_input.txt deleted file mode 100644 index 7a76cf7..0000000 --- a/py/2017/05/test_input.txt +++ /dev/null @@ -1,5 +0,0 @@ -0 -3 -0 -1 --3 diff --git a/py/aoc/__init__.py b/py/aoc/__init__.py index 582eb72..e94c500 100644 --- a/py/aoc/__init__.py +++ b/py/aoc/__init__.py @@ -2,7 +2,7 @@ import sys import argparse from pathlib import Path -from .y2017 import d01, d02, d03, d04 +from .y2017 import d01, d02, d03, d04, d05 from .y2018 import d01, d02, d03, d04, d05, d06, d07, d08, d09, d10, d11 from .y2020 import d10 from .y2021 import d14 @@ -13,6 +13,7 @@ DAYS = { "2017_02": y2017.d02.solve, "2017_03": y2017.d03.solve, "2017_04": y2017.d04.solve, + "2017_05": y2017.d05.solve, "2018_01": y2018.d01.solve, "2018_02": y2018.d02.solve, "2018_03": y2018.d03.solve, diff --git a/py/aoc/y2017/d05.py b/py/aoc/y2017/d05.py new file mode 100644 index 0000000..a4efe57 --- /dev/null +++ b/py/aoc/y2017/d05.py @@ -0,0 +1,50 @@ +# 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}")