diff --git a/day02.py b/day02.py new file mode 100644 index 0000000..e3b83e6 --- /dev/null +++ b/day02.py @@ -0,0 +1,37 @@ +from aoc import AOCDay +from typing import Any + + +class Day(AOCDay): + test_solutions_p1 = [150] + test_solutions_p2 = [900] + + def part1(self) -> Any: + path = self.getInputAsArraySplit(" ", [str, int]) + pos = 0 + depth = 0 + for direction in path: + if direction[0] == 'forward': + pos += direction[1] + elif direction[0] == 'down': + depth += direction[1] + elif direction[0] == 'up': + depth -= direction[1] + + return pos * depth + + def part2(self) -> Any: + path = self.getInputAsArraySplit(" ", [str, int]) + pos = 0 + depth = 0 + aim = 0 + for direction in path: + if direction[0] == 'forward': + pos += direction[1] + depth += aim * direction[1] + elif direction[0] == 'down': + aim += direction[1] + elif direction[0] == 'up': + aim -= direction[1] + + return pos * depth diff --git a/inputs/input02 b/inputs/input02 new file mode 100644 index 0000000..e7e260a --- /dev/null +++ b/inputs/input02 @@ -0,0 +1,1000 @@ +forward 7 +forward 9 +forward 3 +down 5 +down 9 +forward 6 +down 2 +forward 2 +forward 8 +forward 3 +forward 5 +forward 5 +forward 8 +down 6 +forward 8 +forward 2 +up 8 +down 8 +forward 6 +down 4 +down 5 +forward 2 +down 6 +forward 7 +down 9 +forward 9 +down 2 +down 7 +up 6 +up 3 +up 7 +down 9 +forward 1 +forward 1 +down 4 +down 9 +forward 4 +up 4 +forward 8 +forward 9 +down 7 +down 4 +up 6 +down 8 +down 2 +forward 8 +forward 6 +down 3 +forward 2 +forward 6 +down 3 +forward 1 +forward 8 +down 8 +down 9 +forward 5 +forward 4 +forward 8 +down 7 +forward 4 +forward 3 +forward 6 +down 3 +forward 6 +forward 6 +down 9 +down 9 +down 9 +down 2 +down 7 +down 4 +forward 3 +up 7 +up 3 +down 1 +forward 4 +up 9 +forward 4 +forward 2 +down 2 +forward 9 +up 4 +forward 5 +down 8 +up 7 +down 5 +down 1 +up 7 +up 4 +forward 5 +up 8 +up 3 +down 2 +down 1 +down 2 +forward 3 +up 1 +forward 1 +forward 1 +down 1 +down 6 +down 6 +up 4 +down 4 +down 4 +forward 6 +down 6 +forward 7 +forward 5 +up 7 +down 9 +down 6 +forward 5 +forward 6 +forward 2 +down 4 +forward 5 +forward 8 +down 8 +down 6 +forward 2 +forward 8 +down 3 +forward 6 +down 1 +forward 5 +down 8 +up 1 +forward 6 +down 7 +forward 4 +down 8 +down 8 +forward 8 +down 6 +down 3 +forward 2 +forward 8 +forward 9 +forward 4 +forward 3 +down 4 +forward 3 +down 9 +down 1 +forward 2 +forward 3 +forward 7 +down 1 +forward 6 +forward 8 +forward 6 +forward 2 +down 8 +up 9 +forward 6 +forward 8 +down 7 +down 5 +up 4 +forward 9 +up 7 +up 3 +forward 3 +down 6 +forward 4 +forward 2 +down 3 +forward 9 +forward 5 +up 7 +down 9 +up 4 +down 3 +forward 8 +up 1 +forward 2 +forward 8 +forward 8 +forward 5 +down 7 +up 6 +down 9 +down 4 +forward 2 +down 5 +down 2 +down 2 +forward 6 +down 2 +forward 9 +forward 1 +up 1 +forward 4 +down 1 +forward 3 +down 3 +forward 4 +up 5 +up 3 +forward 6 +forward 8 +forward 2 +forward 6 +up 5 +down 9 +down 8 +forward 3 +down 5 +forward 8 +forward 1 +down 9 +up 3 +down 2 +down 9 +up 8 +down 2 +up 7 +up 2 +up 3 +down 9 +down 1 +down 7 +down 1 +forward 1 +down 9 +down 6 +forward 3 +up 7 +up 8 +down 5 +down 6 +up 2 +forward 8 +down 4 +up 1 +forward 4 +up 4 +forward 2 +down 4 +forward 4 +down 9 +up 4 +forward 8 +up 7 +forward 1 +down 3 +up 7 +forward 5 +down 5 +forward 2 +forward 7 +forward 3 +down 8 +forward 4 +forward 9 +up 2 +down 4 +down 5 +forward 4 +down 4 +up 6 +down 8 +up 1 +down 1 +up 6 +up 6 +down 7 +down 7 +forward 2 +forward 4 +forward 8 +down 8 +down 4 +down 4 +down 7 +forward 4 +down 3 +forward 5 +forward 5 +forward 7 +down 7 +forward 1 +down 8 +up 4 +up 9 +up 3 +up 6 +forward 5 +forward 5 +forward 4 +forward 9 +down 9 +forward 4 +forward 1 +up 8 +up 2 +down 9 +up 4 +forward 2 +up 8 +forward 6 +forward 2 +up 9 +down 3 +forward 3 +up 7 +down 7 +forward 4 +forward 7 +forward 3 +down 4 +down 5 +forward 7 +up 3 +up 1 +down 4 +forward 6 +down 1 +forward 1 +down 4 +down 3 +forward 9 +forward 4 +down 9 +down 3 +forward 2 +forward 5 +forward 6 +down 3 +forward 5 +down 9 +forward 2 +forward 9 +down 7 +down 4 +down 3 +down 1 +up 2 +forward 6 +forward 4 +down 9 +down 2 +forward 2 +forward 9 +down 3 +forward 8 +down 8 +forward 5 +down 4 +forward 4 +up 6 +up 3 +down 3 +down 9 +forward 5 +forward 8 +down 2 +forward 9 +forward 5 +up 9 +forward 2 +forward 3 +forward 4 +up 8 +up 1 +up 6 +down 5 +down 8 +down 4 +forward 6 +up 2 +forward 1 +forward 7 +up 8 +forward 5 +up 9 +forward 7 +down 6 +up 5 +up 7 +up 1 +down 3 +up 6 +forward 1 +up 1 +forward 2 +forward 4 +forward 5 +up 3 +up 8 +up 1 +up 6 +up 3 +down 5 +down 4 +up 8 +down 9 +up 7 +down 6 +down 9 +forward 5 +forward 3 +down 9 +down 3 +down 6 +up 3 +up 8 +down 4 +down 1 +up 9 +up 9 +forward 8 +down 7 +forward 1 +forward 4 +down 8 +forward 2 +down 4 +forward 7 +forward 3 +forward 5 +forward 1 +up 2 +down 9 +down 5 +up 6 +down 3 +forward 1 +up 9 +forward 6 +forward 1 +forward 4 +up 7 +forward 6 +down 1 +forward 9 +forward 1 +forward 3 +down 9 +down 8 +down 5 +forward 4 +down 7 +up 1 +forward 8 +up 4 +forward 6 +down 2 +forward 4 +forward 7 +down 8 +forward 6 +down 7 +forward 7 +up 7 +forward 4 +down 8 +down 8 +forward 8 +forward 6 +down 9 +down 8 +down 6 +down 2 +down 4 +forward 7 +forward 3 +down 8 +down 5 +forward 2 +down 9 +down 7 +up 1 +up 5 +forward 6 +up 8 +up 7 +up 4 +down 6 +down 6 +down 8 +down 9 +down 2 +forward 6 +forward 6 +forward 2 +up 9 +forward 6 +forward 9 +forward 8 +down 5 +down 3 +forward 1 +forward 8 +forward 1 +forward 3 +down 4 +forward 5 +forward 1 +forward 6 +down 8 +down 9 +forward 3 +forward 2 +forward 1 +forward 3 +up 7 +down 7 +down 2 +forward 3 +down 5 +down 2 +down 7 +down 9 +down 5 +down 7 +down 9 +up 7 +forward 7 +forward 9 +forward 8 +forward 5 +down 1 +up 6 +up 6 +forward 5 +up 6 +down 8 +up 6 +forward 2 +down 9 +down 5 +up 8 +up 7 +down 8 +down 7 +up 3 +down 5 +forward 6 +forward 2 +down 6 +forward 6 +forward 1 +forward 5 +forward 3 +down 4 +forward 3 +down 1 +up 7 +forward 3 +forward 9 +forward 3 +forward 4 +down 9 +forward 6 +down 1 +up 6 +forward 2 +forward 1 +down 2 +down 1 +down 9 +forward 1 +up 8 +down 1 +up 3 +forward 3 +forward 1 +up 6 +down 1 +down 7 +down 2 +forward 5 +down 4 +forward 4 +forward 9 +down 7 +forward 6 +down 4 +forward 8 +down 5 +forward 6 +down 6 +down 6 +down 9 +forward 3 +forward 2 +forward 7 +forward 6 +forward 8 +up 6 +forward 7 +down 2 +up 4 +forward 6 +forward 3 +forward 9 +down 1 +forward 9 +down 1 +forward 6 +down 9 +forward 7 +forward 9 +forward 6 +up 3 +down 3 +forward 3 +up 1 +down 8 +forward 7 +down 4 +forward 7 +forward 7 +down 1 +forward 5 +down 6 +forward 6 +down 8 +down 2 +down 7 +forward 9 +forward 7 +forward 2 +down 5 +forward 7 +forward 8 +forward 5 +forward 5 +up 1 +down 1 +up 4 +forward 5 +forward 8 +down 4 +up 8 +forward 8 +up 2 +down 1 +down 9 +up 9 +down 9 +forward 3 +forward 1 +down 7 +down 2 +forward 5 +up 7 +forward 9 +forward 1 +down 4 +down 8 +down 2 +up 1 +up 6 +forward 9 +down 3 +down 2 +forward 5 +forward 4 +down 5 +down 4 +up 4 +forward 4 +down 3 +up 3 +down 7 +down 7 +forward 1 +forward 4 +forward 7 +forward 5 +down 4 +down 7 +forward 1 +forward 9 +down 4 +forward 8 +up 4 +down 9 +down 9 +up 6 +up 3 +forward 2 +forward 3 +up 7 +forward 7 +down 4 +forward 5 +forward 5 +up 2 +down 5 +down 9 +forward 9 +forward 7 +forward 1 +up 5 +up 5 +forward 8 +forward 3 +forward 2 +down 4 +down 6 +down 2 +forward 5 +down 3 +down 9 +forward 8 +forward 7 +forward 7 +down 1 +up 3 +down 8 +down 9 +forward 6 +up 6 +down 6 +forward 2 +forward 3 +forward 7 +up 8 +down 8 +down 7 +forward 2 +down 2 +up 7 +up 9 +forward 1 +forward 1 +forward 1 +forward 1 +forward 1 +up 8 +down 3 +up 8 +down 5 +down 3 +up 4 +forward 4 +down 3 +down 4 +down 3 +up 3 +down 3 +up 2 +up 6 +down 9 +down 6 +up 8 +up 7 +down 1 +down 7 +down 3 +forward 3 +forward 5 +down 4 +down 7 +forward 1 +forward 8 +up 9 +up 2 +forward 3 +up 1 +forward 7 +down 7 +down 5 +forward 9 +up 9 +forward 3 +down 2 +up 4 +down 2 +down 1 +down 9 +down 9 +forward 3 +forward 4 +down 2 +down 6 +up 8 +down 5 +forward 7 +forward 4 +up 3 +forward 2 +down 4 +down 8 +forward 4 +forward 6 +forward 8 +down 6 +down 8 +up 2 +forward 5 +up 7 +down 9 +down 6 +forward 7 +up 3 +down 9 +forward 2 +down 6 +up 6 +down 6 +down 3 +down 2 +down 8 +down 4 +forward 8 +up 7 +forward 9 +forward 4 +down 3 +forward 3 +down 9 +down 2 +forward 2 +forward 1 +down 4 +down 3 +down 8 +up 6 +down 4 +forward 3 +down 7 +forward 8 +down 7 +forward 6 +forward 2 +forward 7 +forward 6 +forward 4 +up 4 +forward 2 +down 4 +down 2 +forward 3 +down 2 +up 9 +down 6 +forward 5 +up 6 +forward 1 +up 1 +down 3 +up 4 +forward 1 +down 6 +forward 9 +up 2 +forward 4 +up 9 +up 5 +down 5 +forward 3 +down 9 +forward 5 +down 3 +forward 7 +forward 5 +forward 9 +up 5 +down 4 +down 2 +forward 9 +down 3 +down 8 +down 9 +forward 2 +down 8 +up 6 +down 4 +down 2 +up 9 +forward 8 +forward 8 +down 8 +forward 4 +down 7 +forward 2 +up 7 +forward 7 +down 4 +forward 4 +down 3 +forward 9 +down 9 +forward 6 +down 5 +down 9 +up 5 +forward 7 +forward 2 +down 3 +down 7 +down 2 +forward 3 +down 4 +up 3 +down 1 +forward 9 +down 4 +down 8 +up 9 +forward 7 +down 8 +forward 9 +down 2 +up 2 +down 1 +down 1 +forward 6 +forward 2 +forward 3 +down 5 +down 1 +down 1 +up 4 +forward 8 +down 3 +down 1 +forward 9 +forward 7 +forward 2 +up 8 +up 6 +down 7 +down 6 +forward 3 +down 2 +down 9 +up 7 +forward 5 +up 9 +down 9 +down 4 +down 8 +down 5 +down 8 +down 8 +forward 6 +forward 1 +forward 4 +forward 7 +down 7 +down 6 +forward 4 +forward 7 +forward 6 +down 7 +forward 4 +forward 9 +up 3 +forward 9 +forward 5 +forward 1 +up 2 +down 1 +down 5 +forward 9 +up 4 +forward 6 +up 3 +up 6 +forward 8 +down 6 +forward 5 +down 3 +forward 2 +forward 7 +down 4 +up 8 +forward 6 +up 7 +up 9 +forward 3 +down 3 +down 7 +down 7 +down 1 +down 6 +down 9 +up 1 +forward 6 +forward 6 +down 3 +forward 7 +down 8 +forward 1 +down 7 +down 4 +down 3 +down 4 +down 4 +forward 7 +down 3 +forward 6 +up 9 +forward 3 diff --git a/inputs/test_input02_1_0 b/inputs/test_input02_1_0 new file mode 100644 index 0000000..b7172ac --- /dev/null +++ b/inputs/test_input02_1_0 @@ -0,0 +1,6 @@ +forward 5 +down 5 +forward 8 +up 3 +down 8 +forward 2 diff --git a/inputs/test_input02_2_0 b/inputs/test_input02_2_0 new file mode 100644 index 0000000..b7172ac --- /dev/null +++ b/inputs/test_input02_2_0 @@ -0,0 +1,6 @@ +forward 5 +down 5 +forward 8 +up 3 +down 8 +forward 2