From 41fec62b967111436a86d7302e732dcabad9805d Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Fri, 9 Dec 2022 09:59:19 +0100 Subject: [PATCH] Solve day 9 part 1 --- 2022/day09_bridge.py | 95 ++ 2022/inputs/day09 | 2000 +++++++++++++++++++++++++++++++++++++++ 2022/inputs/day09-test1 | 8 + 3 files changed, 2103 insertions(+) create mode 100644 2022/day09_bridge.py create mode 100644 2022/inputs/day09 create mode 100644 2022/inputs/day09-test1 diff --git a/2022/day09_bridge.py b/2022/day09_bridge.py new file mode 100644 index 0000000..a7ca75f --- /dev/null +++ b/2022/day09_bridge.py @@ -0,0 +1,95 @@ +from __future__ import annotations + +import dataclasses + + +def main(filename: str, expected_part_1: int = None, expected_part_2: int = None): + print(f"\n+ Running on {filename}") + with open(filename) as f: + data = f.read().strip().split("\n") + + data = parse_data(data) + solution_part_1 = solve_part_1(data) + + print(f"1. Found {solution_part_1}") + if expected_part_1: + assert expected_part_1 == solution_part_1 + + solution_part_2 = solve_part_2(data) + print(f"2. Found {solution_part_2}") + if expected_part_2: + assert expected_part_2 == solution_part_2 + + +Instruction = tuple[str, int] +DataType = list[Instruction] + + +@dataclasses.dataclass +class Point: + x: int = 0 + y: int = 0 + + def __eq__(self, other): + return (self.x, self.y) == (other.x, other.y) + + def move(self, instruction: Instruction) -> None: + match instruction[0]: + case "R": + self.x += 1 + case "L": + self.x -= 1 + case "U": + self.y += 1 + case "D": + self.y -= 1 + + def follow(self, other: Point) -> None: + if self == other: + return + if abs(self.x - other.x) <= 1 and abs(self.y - other.y) <= 1: + return + if other.x > self.x: + self.x += 1 + elif other.x < self.x: + self.x -= 1 + if other.y > self.y: + self.y += 1 + elif other.y < self.y: + self.y -= 1 + + @property + def tuple(self) -> tuple[int, int]: + return self.x, self.y + + +def parse_data(data: list[str]) -> DataType: + instructions = [] + for line in data: + direction, count = line.split() + instructions.append((direction, int(count))) + return instructions + + +def solve_part_1(instructions: DataType) -> int: + head = Point() + tail = Point() + visited = set() + for instruction in instructions: + count = instruction[1] + while count > 0: + head.move(instruction) + tail.follow(head) + tail_tuple = tail.tuple + visited.add(tail_tuple) + count -= 1 + return len(visited) + + +def solve_part_2(instructions: DataType) -> int: + return 0 + + +if __name__ == "__main__": + main("inputs/day09-test1", expected_part_1=13) + main("inputs/day09", expected_part_1=5619) diff --git a/2022/inputs/day09 b/2022/inputs/day09 new file mode 100644 index 0000000..a7eb5cd --- /dev/null +++ b/2022/inputs/day09 @@ -0,0 +1,2000 @@ +L 1 +D 2 +R 2 +L 1 +D 1 +L 1 +U 1 +R 1 +L 2 +R 2 +L 2 +D 1 +R 2 +D 1 +U 2 +R 2 +D 1 +R 1 +L 2 +R 1 +D 1 +U 2 +R 2 +D 1 +R 2 +L 1 +D 1 +U 1 +R 1 +D 2 +L 1 +D 1 +L 1 +U 1 +L 2 +U 1 +L 1 +U 1 +L 1 +D 2 +R 2 +U 1 +D 2 +R 1 +U 1 +D 1 +R 1 +U 2 +L 2 +D 2 +R 1 +U 2 +L 2 +U 1 +D 1 +L 1 +R 2 +L 2 +R 1 +D 2 +L 1 +D 2 +L 1 +R 2 +U 2 +D 2 +U 1 +R 2 +D 2 +L 2 +U 1 +D 2 +R 1 +L 2 +R 1 +L 2 +U 2 +D 2 +U 2 +D 2 +R 1 +U 2 +L 2 +D 1 +U 2 +L 1 +D 1 +R 2 +U 1 +L 1 +D 1 +U 2 +D 2 +R 2 +U 1 +L 2 +D 2 +L 1 +D 2 +L 1 +U 1 +R 2 +L 2 +D 1 +R 2 +U 2 +R 2 +L 2 +D 1 +R 1 +L 1 +D 2 +U 2 +L 1 +D 1 +R 1 +L 3 +U 2 +R 2 +D 3 +L 1 +R 3 +L 1 +R 2 +D 1 +U 3 +L 1 +U 2 +L 1 +D 3 +R 3 +D 1 +U 3 +R 2 +D 2 +R 2 +L 1 +U 1 +R 1 +U 2 +R 3 +U 1 +D 1 +U 1 +R 3 +D 2 +R 2 +U 3 +D 1 +R 3 +L 3 +U 3 +D 3 +R 1 +D 3 +L 1 +D 3 +L 1 +R 1 +U 1 +L 2 +D 3 +U 3 +D 2 +U 3 +D 2 +U 2 +D 1 +R 2 +U 3 +L 1 +R 2 +L 3 +U 3 +D 3 +L 2 +R 2 +U 3 +R 1 +L 1 +U 1 +D 1 +R 2 +L 3 +U 3 +D 1 +L 1 +U 1 +R 1 +D 2 +L 2 +D 2 +R 3 +D 2 +R 3 +D 2 +R 1 +D 1 +R 3 +D 1 +U 1 +L 1 +R 2 +D 3 +L 3 +R 1 +L 2 +R 1 +U 3 +D 2 +R 1 +U 1 +L 2 +R 2 +L 2 +D 1 +U 3 +R 3 +D 2 +R 1 +U 2 +L 3 +R 1 +D 1 +U 2 +L 4 +D 2 +R 1 +U 4 +R 4 +D 3 +R 3 +U 2 +L 2 +U 1 +D 3 +U 2 +D 2 +R 4 +D 3 +R 3 +D 4 +R 2 +U 2 +L 1 +D 1 +L 2 +U 4 +D 4 +R 3 +U 2 +R 3 +U 4 +D 2 +R 3 +D 4 +L 3 +D 1 +R 4 +D 4 +R 4 +L 3 +U 1 +L 1 +D 4 +L 3 +D 1 +U 2 +R 4 +U 1 +L 4 +D 3 +U 2 +R 4 +D 3 +U 3 +L 4 +U 2 +R 1 +U 1 +D 3 +R 3 +D 1 +U 1 +L 3 +R 1 +D 2 +R 4 +U 2 +D 4 +U 4 +L 4 +R 4 +D 2 +R 3 +D 3 +R 4 +U 1 +D 3 +R 4 +L 1 +U 1 +L 1 +D 4 +R 1 +U 4 +L 3 +R 2 +U 4 +R 3 +U 1 +L 3 +D 2 +L 2 +R 3 +D 1 +L 4 +D 2 +R 3 +L 4 +R 4 +L 2 +U 1 +D 1 +R 3 +U 4 +D 4 +U 4 +D 4 +R 4 +U 4 +D 1 +U 1 +D 4 +U 1 +D 4 +U 4 +R 4 +D 4 +L 4 +D 1 +U 5 +R 5 +U 5 +L 1 +R 4 +U 5 +L 2 +U 4 +D 1 +R 1 +L 4 +D 2 +L 5 +D 5 +R 3 +L 2 +R 1 +U 1 +R 5 +D 2 +U 1 +L 1 +D 4 +U 4 +L 2 +U 4 +L 1 +D 4 +L 1 +U 4 +L 3 +U 3 +D 2 +L 3 +D 2 +L 3 +R 1 +L 2 +U 1 +L 2 +R 2 +D 5 +U 4 +R 1 +D 5 +U 2 +R 3 +U 4 +L 4 +R 5 +L 2 +R 5 +U 5 +D 3 +R 2 +D 1 +R 2 +U 4 +D 1 +R 4 +D 5 +R 4 +L 4 +U 5 +D 1 +L 2 +R 1 +U 3 +L 5 +R 5 +L 2 +D 3 +L 2 +R 3 +U 2 +D 2 +U 3 +L 5 +U 3 +D 1 +R 1 +D 3 +L 2 +U 1 +D 2 +U 4 +L 4 +U 5 +R 5 +U 5 +L 5 +R 3 +L 1 +D 1 +L 3 +D 4 +R 1 +D 1 +R 3 +L 4 +U 4 +L 1 +R 5 +D 4 +U 2 +D 6 +U 6 +L 6 +U 2 +L 2 +D 6 +U 2 +R 2 +U 1 +R 6 +D 6 +R 5 +L 4 +R 3 +D 4 +L 6 +U 1 +D 2 +L 5 +U 2 +D 1 +U 6 +R 4 +L 4 +U 3 +L 3 +U 6 +L 4 +R 4 +L 5 +U 2 +L 1 +U 1 +D 5 +U 4 +D 5 +L 5 +U 3 +R 6 +U 5 +D 6 +R 3 +D 1 +L 3 +R 5 +U 5 +R 4 +D 3 +U 1 +D 1 +R 1 +D 1 +L 6 +U 2 +D 4 +U 6 +D 4 +L 6 +D 4 +R 6 +U 4 +R 2 +D 2 +U 1 +L 2 +U 5 +D 4 +L 2 +D 1 +L 3 +R 1 +L 1 +R 6 +L 3 +U 5 +D 3 +R 5 +U 1 +D 5 +R 4 +D 2 +U 6 +R 1 +U 3 +D 2 +R 1 +U 6 +R 2 +U 5 +R 4 +D 6 +U 1 +R 2 +D 6 +U 5 +R 1 +D 6 +U 2 +L 3 +U 3 +D 1 +R 4 +D 1 +L 3 +R 4 +U 2 +R 6 +L 3 +R 6 +U 6 +D 1 +R 4 +D 2 +U 6 +D 3 +R 2 +L 1 +D 5 +L 6 +R 4 +D 3 +R 2 +U 2 +R 4 +D 1 +U 2 +L 6 +D 3 +L 3 +D 6 +L 4 +U 6 +D 2 +R 3 +D 7 +L 7 +R 4 +D 2 +L 1 +R 7 +L 7 +U 7 +D 3 +R 2 +L 4 +D 1 +L 2 +U 6 +D 6 +R 5 +L 5 +U 3 +L 5 +R 2 +L 5 +U 3 +D 6 +L 1 +D 3 +L 7 +U 1 +R 7 +D 1 +R 2 +U 5 +L 3 +D 2 +L 2 +R 2 +U 2 +R 1 +L 5 +U 2 +D 2 +U 1 +R 4 +D 4 +L 6 +D 3 +U 4 +L 3 +D 3 +U 2 +L 4 +D 2 +R 3 +L 6 +R 3 +D 6 +U 1 +R 3 +U 7 +D 5 +L 1 +R 7 +L 5 +R 1 +D 7 +U 4 +L 3 +R 4 +D 1 +L 5 +D 3 +R 6 +U 5 +L 5 +R 5 +D 5 +U 7 +R 1 +D 1 +U 5 +D 3 +R 2 +U 6 +D 5 +U 3 +L 3 +R 4 +L 8 +U 2 +R 1 +U 4 +R 5 +L 6 +U 4 +R 3 +D 2 +U 7 +R 7 +D 1 +U 1 +L 3 +R 4 +U 6 +L 8 +D 4 +R 5 +D 6 +L 1 +R 8 +U 2 +L 7 +U 5 +R 4 +U 1 +D 1 +R 8 +L 6 +D 6 +R 1 +D 1 +U 2 +R 1 +L 6 +R 5 +U 1 +D 1 +L 2 +U 7 +R 4 +D 6 +L 3 +D 7 +U 1 +R 7 +D 1 +R 6 +L 2 +D 4 +L 3 +R 7 +L 7 +U 8 +R 7 +L 5 +D 8 +R 1 +D 4 +L 3 +R 7 +L 4 +U 7 +L 3 +D 7 +L 4 +R 8 +L 5 +D 2 +R 3 +U 6 +D 1 +L 7 +D 1 +U 2 +D 8 +U 7 +R 1 +U 8 +L 4 +U 4 +D 5 +R 2 +D 7 +R 5 +L 4 +D 4 +U 4 +D 5 +U 2 +D 5 +R 8 +D 7 +U 2 +D 7 +R 3 +U 6 +L 6 +D 5 +L 5 +R 3 +U 5 +R 5 +L 3 +D 3 +R 3 +D 5 +R 6 +D 3 +L 1 +U 6 +R 4 +D 4 +R 8 +D 6 +L 8 +D 2 +U 1 +L 9 +R 8 +D 6 +L 8 +R 6 +L 8 +U 4 +L 6 +R 5 +U 1 +L 5 +R 8 +D 3 +L 8 +R 9 +U 9 +L 5 +D 5 +R 2 +D 1 +U 4 +R 1 +U 2 +R 2 +L 8 +D 1 +L 3 +D 2 +U 1 +L 8 +R 5 +L 2 +D 9 +U 4 +L 5 +D 3 +U 4 +D 8 +L 4 +U 1 +L 1 +D 2 +U 6 +D 8 +U 3 +D 2 +U 3 +R 5 +U 6 +L 1 +U 1 +L 8 +D 9 +L 4 +U 4 +R 3 +D 6 +U 5 +L 8 +D 4 +U 4 +L 8 +R 6 +L 4 +U 5 +R 5 +U 4 +D 4 +U 4 +R 7 +L 8 +U 6 +L 9 +R 8 +U 5 +L 2 +U 5 +D 3 +L 7 +D 4 +R 1 +U 3 +R 6 +L 9 +R 8 +U 8 +L 7 +R 1 +L 1 +U 3 +D 8 +R 3 +D 1 +L 5 +D 2 +R 4 +U 9 +L 1 +R 1 +L 5 +R 4 +U 8 +D 6 +U 6 +R 9 +L 3 +R 9 +U 1 +R 9 +D 5 +L 4 +R 6 +L 3 +R 2 +U 9 +D 8 +R 4 +L 6 +R 5 +L 6 +U 6 +R 8 +U 10 +L 2 +R 1 +D 8 +L 9 +U 4 +D 1 +L 9 +R 6 +U 7 +D 7 +L 6 +R 6 +U 2 +L 3 +U 6 +R 4 +L 10 +R 1 +L 5 +U 2 +R 6 +D 2 +R 9 +L 4 +U 4 +D 1 +L 7 +R 8 +L 1 +D 9 +L 6 +U 6 +L 10 +U 1 +L 2 +R 2 +U 3 +L 5 +D 4 +L 8 +D 7 +L 5 +R 3 +D 7 +U 10 +D 10 +R 8 +D 3 +R 7 +D 5 +R 10 +D 9 +R 6 +L 3 +R 1 +U 8 +L 3 +R 9 +U 4 +D 3 +R 8 +D 10 +U 5 +D 8 +L 3 +D 8 +L 3 +D 6 +R 6 +D 1 +R 3 +D 10 +R 4 +L 2 +R 10 +D 4 +U 1 +L 9 +R 9 +D 10 +U 4 +D 2 +L 5 +R 8 +L 2 +R 4 +U 5 +D 1 +L 3 +U 4 +D 7 +L 11 +R 2 +L 1 +D 3 +R 8 +D 5 +U 6 +L 11 +D 7 +U 3 +R 4 +L 6 +U 2 +D 1 +R 5 +U 9 +L 3 +U 4 +R 9 +D 11 +R 1 +U 8 +L 7 +R 6 +D 11 +U 8 +R 3 +D 8 +U 6 +R 8 +U 8 +D 9 +U 6 +R 7 +U 11 +L 10 +U 11 +L 10 +U 10 +R 11 +U 10 +L 10 +R 6 +L 11 +D 1 +L 5 +D 4 +R 1 +L 4 +U 2 +D 8 +L 10 +R 8 +D 10 +L 2 +D 5 +L 11 +R 6 +L 9 +U 3 +L 1 +R 11 +L 8 +D 5 +U 11 +D 10 +R 5 +U 9 +L 4 +U 5 +R 8 +L 8 +U 1 +L 11 +U 6 +R 6 +D 5 +R 5 +L 4 +U 2 +L 6 +D 3 +L 9 +R 6 +U 3 +D 11 +R 1 +D 11 +U 4 +R 9 +D 3 +L 7 +D 7 +L 11 +D 5 +L 5 +D 8 +R 10 +U 2 +L 6 +U 10 +D 10 +R 4 +D 6 +U 10 +R 3 +U 5 +R 4 +U 3 +D 11 +R 7 +D 10 +L 6 +U 2 +L 11 +D 12 +L 8 +U 11 +D 10 +L 2 +D 10 +L 2 +R 3 +D 6 +L 9 +D 9 +U 2 +L 5 +R 3 +U 3 +D 1 +U 7 +L 5 +R 2 +U 7 +D 12 +U 5 +L 1 +R 3 +D 8 +U 3 +D 12 +R 5 +L 11 +U 5 +L 2 +R 3 +L 7 +R 9 +U 5 +D 3 +L 4 +D 8 +U 6 +R 11 +D 10 +U 3 +R 4 +L 3 +R 9 +U 7 +D 5 +L 10 +R 1 +U 8 +D 9 +L 12 +R 6 +D 11 +U 7 +D 11 +R 2 +D 9 +R 11 +U 12 +R 2 +D 11 +R 5 +L 1 +U 6 +D 4 +L 7 +U 10 +L 5 +D 8 +R 7 +L 7 +R 6 +U 7 +L 9 +U 12 +L 9 +U 2 +R 6 +U 11 +L 2 +D 3 +R 3 +U 3 +R 8 +D 5 +R 10 +D 12 +R 1 +D 3 +U 8 +D 2 +L 4 +U 7 +R 1 +L 11 +R 7 +U 11 +D 3 +R 9 +L 1 +D 1 +R 11 +L 12 +R 1 +U 11 +R 9 +L 12 +R 5 +D 11 +R 10 +U 3 +L 13 +U 11 +L 11 +R 3 +L 1 +U 12 +L 7 +U 2 +D 7 +U 9 +R 2 +U 7 +L 10 +R 9 +U 13 +D 8 +R 7 +D 7 +L 1 +U 2 +L 9 +D 9 +L 13 +R 13 +L 12 +U 3 +L 1 +R 5 +D 8 +U 2 +D 12 +R 9 +D 11 +R 12 +L 10 +U 9 +R 1 +U 11 +L 5 +R 10 +L 7 +R 9 +U 11 +D 3 +R 13 +L 11 +U 4 +R 1 +U 7 +L 2 +R 3 +L 6 +D 4 +R 8 +L 8 +U 10 +D 12 +U 9 +R 7 +D 1 +R 8 +U 7 +R 1 +D 8 +L 6 +D 13 +L 6 +R 4 +U 13 +L 2 +R 5 +D 2 +U 1 +L 6 +R 7 +D 11 +L 9 +R 11 +U 3 +L 8 +R 6 +L 10 +U 9 +R 1 +U 3 +R 1 +L 6 +R 4 +L 3 +D 8 +U 3 +D 3 +U 8 +L 12 +R 5 +L 3 +D 8 +L 7 +D 3 +R 5 +L 3 +R 11 +L 4 +U 6 +R 7 +L 11 +D 4 +R 5 +U 6 +R 13 +D 11 +U 2 +D 12 +L 8 +R 3 +D 4 +L 12 +D 7 +R 14 +U 8 +R 12 +U 14 +R 1 +L 3 +R 13 +U 14 +D 12 +R 4 +U 4 +R 14 +D 10 +U 11 +R 10 +D 13 +U 8 +R 13 +L 9 +U 6 +D 7 +U 9 +L 11 +U 10 +L 14 +U 7 +L 5 +D 1 +U 8 +R 14 +U 12 +L 1 +R 4 +L 7 +D 2 +R 5 +D 3 +R 14 +U 6 +D 7 +R 2 +L 8 +U 14 +D 12 +U 12 +L 5 +D 5 +L 1 +U 3 +L 10 +R 4 +U 2 +R 11 +D 6 +U 12 +D 5 +U 11 +D 5 +L 8 +D 1 +L 7 +D 1 +U 9 +D 6 +L 10 +D 7 +L 10 +R 7 +D 11 +L 9 +U 13 +D 10 +U 10 +R 13 +L 2 +R 13 +U 3 +R 8 +D 7 +L 2 +U 1 +L 7 +D 11 +U 6 +D 12 +L 3 +R 3 +D 1 +R 2 +D 2 +U 4 +D 1 +L 12 +U 5 +L 3 +R 13 +D 9 +L 3 +D 10 +L 5 +R 13 +D 9 +L 7 +R 12 +L 8 +U 1 +R 5 +L 3 +D 7 +R 4 +U 6 +R 4 +U 15 +D 13 +R 3 +L 14 +R 1 +U 3 +R 4 +U 12 +R 7 +D 7 +U 1 +R 12 +D 9 +R 14 +U 10 +R 1 +U 6 +D 10 +R 14 +D 12 +R 6 +D 13 +U 14 +R 15 +U 9 +L 6 +R 7 +L 13 +R 4 +D 8 +R 2 +L 6 +U 13 +L 15 +D 5 +U 4 +R 14 +D 5 +L 6 +U 3 +R 10 +L 12 +U 9 +D 5 +L 4 +U 1 +R 10 +L 3 +U 5 +R 12 +D 14 +L 10 +R 9 +D 2 +U 6 +D 6 +U 1 +L 8 +R 3 +D 8 +R 1 +D 5 +L 10 +D 11 +L 5 +R 6 +D 8 +R 2 +D 12 +L 7 +R 14 +D 8 +L 8 +U 14 +R 13 +L 7 +D 8 +U 3 +L 6 +U 6 +D 4 +R 9 +L 11 +R 2 +U 10 +R 14 +D 8 +R 2 +U 10 +R 7 +U 3 +R 4 +D 9 +U 9 +D 11 +U 5 +D 9 +R 14 +U 13 +D 5 +L 7 +R 2 +D 9 +R 2 +U 9 +D 8 +L 12 +R 12 +L 3 +R 6 +U 16 +R 15 +D 8 +U 3 +R 1 +L 8 +D 11 +L 6 +R 5 +L 14 +D 15 +U 1 +R 10 +D 11 +R 16 +D 1 +U 6 +L 12 +U 3 +D 9 +U 1 +D 13 +L 14 +R 8 +L 9 +D 3 +U 16 +R 3 +L 11 +R 13 +L 10 +U 10 +L 3 +R 7 +L 6 +R 2 +D 4 +U 15 +R 13 +U 10 +D 1 +L 3 +D 15 +L 9 +R 8 +D 14 +R 11 +L 11 +D 4 +U 15 +L 2 +U 4 +D 3 +U 6 +D 5 +U 15 +L 8 +D 14 +R 1 +U 8 +L 7 +D 8 +R 8 +U 1 +D 8 +R 11 +D 4 +U 14 +R 11 +D 16 +U 4 +D 9 +R 11 +L 16 +D 5 +L 9 +R 6 +U 9 +D 16 +R 4 +L 11 +U 11 +D 6 +U 13 +D 14 +U 13 +L 8 +U 9 +D 3 +R 4 +L 8 +D 7 +L 12 +D 6 +R 14 +L 11 +U 7 +D 4 +U 1 +L 11 +U 15 +L 5 +D 8 +U 2 +R 15 +L 5 +R 7 +L 8 +R 15 +U 8 +D 7 +U 17 +D 5 +U 15 +R 8 +U 15 +L 7 +U 5 +D 11 +L 4 +U 11 +D 13 +R 10 +D 12 +L 16 +D 9 +L 17 +U 1 +R 10 +D 1 +R 16 +U 6 +L 2 +D 7 +U 8 +D 12 +L 15 +U 16 +R 5 +L 13 +D 2 +U 7 +L 14 +D 6 +L 8 +R 12 +U 4 +D 7 +U 4 +R 3 +U 8 +D 5 +L 4 +U 3 +R 13 +L 14 +R 7 +U 11 +D 9 +R 1 +D 15 +R 11 +L 8 +R 7 +D 17 +U 13 +R 15 +D 5 +R 15 +U 7 +R 10 +U 14 +D 2 +L 7 +R 13 +D 10 +U 16 +D 6 +R 10 +D 4 +U 1 +R 14 +U 2 +L 2 +U 1 +L 13 +D 2 +U 16 +D 1 +U 8 +L 7 +U 17 +D 9 +L 10 +U 16 +D 13 +U 15 +D 12 +L 6 +D 9 +L 3 +R 17 +U 16 +L 6 +D 11 +R 11 +L 11 +U 2 +R 15 +D 11 +R 10 +U 2 +D 18 +U 18 +D 18 +L 4 +U 1 +R 1 +L 7 +U 7 +L 12 +U 10 +R 13 +D 16 +R 1 +D 11 +L 12 +R 7 +D 13 +L 10 +D 6 +U 1 +L 14 +R 13 +D 14 +L 3 +D 18 +L 2 +U 9 +L 7 +R 18 +L 11 +U 16 +R 9 +U 8 +D 5 +L 15 +R 16 +D 17 +U 16 +L 10 +U 4 +R 1 +L 10 +U 4 +L 8 +U 5 +L 5 +R 18 +U 11 +R 18 +U 12 +D 18 +R 9 +L 2 +D 10 +L 15 +D 2 +R 7 +D 16 +L 4 +R 13 +L 4 +R 2 +L 14 +D 4 +R 15 +D 14 +R 13 +L 9 +D 1 +U 7 +R 17 +L 6 +U 1 +L 6 +D 6 +U 5 +L 5 +R 10 +U 1 +R 9 +U 3 +D 2 +L 4 +U 1 +D 12 +R 5 +U 3 +R 15 +L 18 +R 3 +D 1 +L 6 +D 16 +U 15 +D 6 +R 8 +D 4 +R 14 +U 10 +R 10 +D 5 +L 14 +U 6 +L 15 +R 10 +D 17 +R 7 +L 13 +R 12 +D 4 +R 11 +D 2 +L 1 +R 13 +U 6 +D 16 +R 5 +D 17 +U 17 +D 11 +R 15 +L 4 +D 13 +L 11 +U 16 +L 3 +D 5 +U 1 +R 16 +L 10 +U 7 +D 9 +R 10 +L 4 +D 4 +L 7 +D 12 +U 5 +D 10 +R 2 +L 9 +D 6 +U 14 +R 4 +U 2 +L 19 +R 15 +L 13 +R 12 +L 8 +D 15 +U 13 +L 4 +U 13 +D 3 +U 7 +L 10 +R 8 +D 14 +R 3 +L 10 +D 3 +U 5 +L 15 +R 5 +L 2 +R 10 +D 5 +R 13 +L 18 +R 7 +L 6 +U 12 +D 16 +R 3 +L 11 +D 7 +R 1 +U 9 +R 9 +D 6 +L 1 +D 13 +U 10 +L 17 +R 10 +L 12 +R 8 +D 10 +R 12 +U 12 +D 14 +U 1 +D 4 +U 2 +L 9 +R 3 +U 2 +R 19 +D 1 +L 4 +R 6 +L 4 +D 4 +R 16 +D 17 +R 3 +D 9 +L 8 +R 15 +D 4 +U 13 +D 4 +U 17 +D 15 +L 17 +D 1 +R 14 +L 18 +U 2 +R 11 +U 5 diff --git a/2022/inputs/day09-test1 b/2022/inputs/day09-test1 new file mode 100644 index 0000000..9874df2 --- /dev/null +++ b/2022/inputs/day09-test1 @@ -0,0 +1,8 @@ +R 4 +U 4 +L 3 +D 1 +R 4 +D 1 +L 5 +R 2