From a407435c7dbb376a8b13e48b854f749b16ed0d4d Mon Sep 17 00:00:00 2001 From: Giovani Date: Mon, 12 Dec 2022 11:56:38 -0500 Subject: [PATCH] feat: day 9 part 1 complete --- day9/input.txt | 2000 ++++++++++++++++++++++++++++++++++++++++++++++++ day9/main.py | 56 ++ input.txt | 8 + 3 files changed, 2064 insertions(+) create mode 100644 day9/input.txt create mode 100644 day9/main.py create mode 100644 input.txt diff --git a/day9/input.txt b/day9/input.txt new file mode 100644 index 0000000..c206ba3 --- /dev/null +++ b/day9/input.txt @@ -0,0 +1,2000 @@ +R 2 +L 2 +D 2 +U 2 +R 2 +D 2 +L 2 +D 2 +U 2 +L 2 +D 1 +R 1 +D 2 +R 2 +U 1 +R 1 +U 2 +R 1 +L 2 +D 2 +L 1 +U 1 +L 1 +D 1 +R 1 +L 2 +U 2 +R 2 +U 1 +R 2 +L 2 +D 1 +U 1 +D 2 +L 1 +U 1 +L 1 +D 1 +U 1 +D 1 +L 2 +D 2 +U 2 +L 2 +U 1 +R 2 +D 2 +L 1 +R 1 +U 1 +R 1 +L 1 +U 2 +D 1 +U 2 +R 1 +U 1 +R 2 +D 2 +R 2 +U 2 +D 2 +U 2 +L 1 +D 2 +R 1 +L 2 +D 2 +R 2 +L 2 +U 2 +L 2 +R 1 +D 1 +R 1 +L 2 +D 1 +L 2 +R 1 +U 1 +R 1 +U 1 +L 2 +U 1 +D 2 +R 1 +L 1 +D 1 +R 1 +L 2 +R 2 +L 2 +R 1 +L 1 +D 1 +L 1 +R 1 +D 2 +U 1 +D 2 +R 1 +D 1 +U 1 +L 1 +R 1 +D 2 +R 2 +L 2 +R 1 +L 1 +R 1 +U 3 +L 2 +R 3 +L 1 +R 1 +L 2 +D 1 +U 3 +L 1 +R 3 +U 1 +L 2 +U 2 +D 2 +R 2 +D 1 +L 2 +U 1 +R 1 +L 3 +R 2 +L 3 +R 2 +L 2 +D 2 +U 3 +R 2 +L 1 +R 2 +U 1 +D 2 +U 3 +D 1 +U 3 +L 1 +R 3 +D 2 +R 1 +L 2 +D 1 +L 1 +D 3 +U 2 +L 3 +R 1 +U 3 +L 1 +R 2 +U 3 +D 2 +U 3 +L 3 +R 1 +L 2 +R 2 +D 3 +L 1 +D 3 +R 3 +L 1 +U 1 +D 1 +L 3 +D 1 +U 2 +D 3 +U 3 +L 1 +U 2 +D 1 +R 3 +D 1 +R 1 +L 2 +U 1 +R 1 +L 1 +U 3 +D 3 +U 3 +R 1 +D 3 +U 1 +L 2 +R 2 +U 2 +R 1 +D 3 +L 1 +D 2 +U 2 +R 2 +D 2 +R 3 +L 2 +R 1 +L 3 +D 3 +R 1 +L 1 +U 3 +R 1 +D 3 +R 3 +D 2 +U 2 +R 2 +D 2 +U 3 +D 2 +R 1 +U 2 +L 3 +D 1 +L 2 +U 1 +D 1 +U 4 +R 4 +U 4 +D 4 +U 3 +D 1 +R 4 +L 1 +D 2 +R 3 +U 1 +R 2 +D 2 +U 4 +R 3 +D 2 +L 1 +U 4 +D 3 +U 1 +D 4 +L 2 +U 3 +D 4 +R 3 +L 2 +D 4 +L 2 +R 3 +U 2 +R 2 +U 1 +L 3 +R 3 +L 3 +U 4 +R 4 +U 2 +R 3 +U 1 +L 3 +D 4 +L 4 +R 4 +D 3 +L 4 +R 1 +U 4 +D 3 +R 3 +U 1 +L 4 +U 2 +L 2 +D 4 +U 3 +R 1 +U 2 +D 4 +U 4 +D 4 +U 1 +L 4 +R 3 +U 2 +R 1 +L 4 +D 4 +U 3 +R 2 +L 2 +U 3 +L 1 +R 1 +L 1 +U 4 +L 1 +R 3 +U 1 +R 1 +D 2 +R 2 +L 4 +D 1 +L 2 +R 1 +D 1 +L 3 +D 3 +U 4 +R 2 +L 4 +U 2 +L 1 +R 3 +U 3 +L 2 +R 2 +D 2 +R 3 +U 4 +L 1 +U 3 +L 3 +U 1 +R 1 +L 2 +D 3 +L 5 +D 2 +U 2 +D 4 +R 2 +L 3 +U 3 +R 1 +U 4 +D 1 +R 2 +U 1 +L 5 +R 4 +D 5 +R 5 +D 2 +U 2 +L 5 +D 2 +U 3 +R 2 +L 4 +D 5 +L 4 +R 4 +U 5 +R 2 +U 5 +L 1 +D 2 +L 3 +U 4 +D 2 +U 2 +L 3 +R 4 +U 4 +R 5 +L 1 +D 2 +U 4 +D 5 +L 5 +R 4 +U 3 +R 2 +U 5 +L 3 +U 5 +R 3 +U 2 +R 2 +D 3 +R 2 +L 2 +D 4 +R 4 +U 3 +R 3 +D 5 +R 2 +U 3 +L 5 +R 1 +U 5 +D 4 +R 3 +D 5 +U 1 +R 4 +L 5 +D 1 +U 3 +L 4 +U 3 +R 3 +D 5 +U 5 +D 5 +L 5 +U 4 +D 5 +L 3 +R 3 +D 4 +U 2 +L 5 +R 1 +U 5 +L 4 +U 4 +D 5 +R 4 +L 1 +U 2 +D 2 +L 1 +R 2 +D 4 +R 5 +L 3 +R 4 +D 4 +L 4 +R 2 +L 1 +D 3 +L 3 +R 2 +D 3 +R 5 +D 2 +U 4 +D 5 +L 1 +U 3 +D 3 +U 6 +L 1 +R 1 +L 4 +R 6 +L 1 +R 1 +D 2 +U 6 +R 1 +U 3 +R 6 +U 1 +R 1 +L 3 +D 5 +R 6 +L 6 +R 1 +U 2 +R 1 +L 5 +R 5 +D 6 +R 4 +D 4 +R 1 +U 6 +R 4 +U 1 +R 5 +U 3 +L 5 +U 1 +R 5 +L 5 +D 5 +R 3 +L 5 +D 3 +L 2 +U 3 +R 1 +U 1 +D 4 +R 4 +L 2 +U 3 +L 1 +U 5 +L 5 +D 4 +R 6 +U 6 +L 5 +U 3 +R 3 +D 1 +U 6 +R 2 +L 4 +R 2 +L 5 +U 3 +D 1 +U 3 +R 1 +D 1 +L 3 +U 6 +L 5 +U 2 +L 3 +D 1 +L 3 +U 6 +L 4 +D 3 +R 4 +D 1 +L 4 +U 1 +R 6 +D 6 +R 5 +D 4 +R 4 +D 4 +U 6 +D 4 +L 3 +R 4 +L 5 +R 1 +D 6 +U 6 +D 2 +R 1 +L 6 +U 6 +L 5 +D 6 +U 4 +R 4 +D 3 +U 5 +D 6 +U 7 +L 5 +U 7 +R 6 +U 1 +L 6 +U 1 +R 2 +D 7 +R 4 +U 1 +R 6 +L 6 +D 4 +L 4 +U 4 +R 1 +D 7 +L 7 +D 7 +L 5 +D 1 +L 1 +U 2 +R 5 +D 5 +L 3 +U 5 +D 6 +L 4 +R 1 +U 6 +L 3 +D 6 +L 7 +D 6 +R 3 +U 7 +R 1 +D 6 +R 3 +U 7 +D 5 +U 1 +L 4 +U 3 +D 3 +U 3 +R 1 +L 2 +R 2 +L 1 +U 3 +D 5 +U 7 +D 1 +U 7 +L 4 +D 3 +U 4 +R 6 +D 2 +L 5 +R 7 +L 5 +R 1 +U 6 +R 7 +U 4 +D 3 +U 1 +L 1 +D 1 +U 6 +L 1 +U 1 +R 7 +L 4 +D 1 +U 2 +R 7 +L 7 +R 5 +U 4 +R 2 +L 7 +U 6 +R 5 +L 1 +R 3 +U 7 +D 7 +L 4 +R 1 +U 4 +R 1 +L 7 +D 4 +L 5 +D 7 +U 4 +L 5 +R 6 +U 1 +L 4 +R 6 +D 2 +L 1 +D 2 +U 4 +L 5 +U 5 +D 4 +U 7 +L 2 +D 3 +U 5 +R 7 +D 1 +R 7 +D 6 +U 4 +R 3 +D 5 +U 5 +D 8 +R 7 +L 7 +R 1 +D 5 +L 3 +R 1 +U 3 +R 6 +D 5 +R 6 +L 5 +D 7 +L 5 +R 2 +D 1 +R 7 +L 1 +D 3 +R 8 +L 5 +U 8 +R 6 +U 4 +D 2 +U 4 +D 5 +U 7 +D 5 +U 2 +D 3 +U 1 +R 4 +L 2 +R 4 +U 7 +R 8 +D 2 +U 3 +R 7 +D 2 +U 1 +D 6 +R 4 +L 4 +R 3 +D 8 +R 8 +U 7 +L 3 +U 7 +D 1 +U 6 +R 8 +L 1 +R 1 +D 8 +U 7 +L 3 +D 4 +L 4 +R 2 +L 6 +D 6 +L 4 +R 7 +D 8 +L 8 +U 8 +R 2 +L 6 +U 5 +D 2 +L 5 +U 1 +L 6 +D 6 +U 7 +L 2 +U 5 +R 6 +D 5 +L 8 +U 8 +R 1 +U 2 +L 3 +D 1 +L 3 +U 4 +D 3 +L 6 +R 9 +L 9 +U 9 +R 1 +D 4 +U 1 +L 3 +R 7 +U 7 +R 1 +U 1 +R 2 +D 4 +U 8 +L 7 +R 3 +U 8 +L 1 +R 1 +D 7 +U 3 +L 3 +U 8 +D 3 +L 1 +D 6 +L 3 +U 4 +D 3 +U 3 +L 3 +D 5 +L 6 +U 9 +L 1 +U 2 +L 3 +R 1 +L 9 +D 2 +U 1 +L 3 +R 9 +L 8 +R 2 +L 7 +D 4 +L 4 +R 2 +L 4 +R 8 +D 4 +L 2 +D 5 +R 8 +U 6 +L 9 +D 1 +L 6 +R 9 +D 4 +L 5 +U 5 +D 1 +U 3 +L 4 +U 2 +L 2 +R 2 +L 1 +R 7 +L 4 +D 4 +U 4 +L 1 +R 2 +D 6 +L 1 +U 8 +D 7 +R 5 +D 7 +R 7 +L 8 +U 8 +L 5 +D 7 +U 2 +D 2 +R 1 +U 2 +L 1 +R 1 +L 2 +D 1 +U 9 +L 9 +U 9 +R 1 +U 3 +R 7 +U 8 +R 1 +L 7 +D 1 +U 7 +R 9 +D 8 +R 2 +D 5 +L 5 +D 2 +L 6 +U 6 +R 1 +L 1 +D 2 +R 4 +L 3 +U 2 +R 5 +L 3 +R 6 +U 8 +R 1 +U 1 +R 7 +D 10 +R 2 +D 4 +R 3 +L 5 +D 1 +U 8 +R 1 +U 4 +D 6 +L 5 +U 8 +D 6 +L 6 +R 4 +L 9 +R 5 +U 6 +L 8 +U 6 +L 10 +D 4 +U 6 +L 8 +U 3 +R 3 +L 6 +U 1 +R 9 +D 8 +U 9 +R 5 +U 10 +R 8 +U 9 +L 7 +R 4 +D 7 +U 3 +L 5 +R 3 +D 9 +L 9 +U 6 +R 10 +L 2 +D 7 +U 8 +D 4 +L 3 +U 4 +R 2 +L 10 +D 4 +U 10 +R 7 +D 5 +R 7 +U 3 +L 10 +R 8 +L 7 +D 3 +L 6 +R 1 +L 2 +U 1 +R 1 +U 8 +R 5 +L 9 +R 9 +L 1 +D 4 +R 6 +U 7 +L 7 +R 3 +U 4 +D 2 +U 8 +L 5 +D 3 +L 6 +D 7 +L 2 +U 1 +R 6 +L 8 +D 9 +R 3 +U 4 +D 8 +L 5 +R 9 +L 1 +U 7 +L 5 +D 4 +U 5 +L 4 +R 4 +L 3 +U 11 +D 1 +L 10 +U 6 +L 5 +D 3 +U 8 +D 11 +L 8 +R 2 +U 5 +L 9 +D 3 +L 11 +R 2 +U 5 +L 7 +D 11 +R 8 +U 1 +L 10 +R 10 +L 9 +R 9 +L 8 +R 7 +D 3 +U 6 +R 11 +U 8 +D 4 +L 9 +U 3 +D 5 +L 4 +R 5 +D 7 +L 5 +U 10 +D 8 +L 3 +D 2 +U 9 +D 6 +L 3 +U 3 +D 8 +U 4 +R 1 +L 9 +U 4 +L 5 +D 10 +L 11 +U 6 +D 8 +L 5 +R 9 +L 2 +U 2 +L 10 +R 5 +U 6 +L 7 +R 7 +U 9 +D 6 +R 7 +D 8 +U 7 +R 6 +L 2 +D 6 +R 8 +L 5 +R 1 +L 10 +R 8 +U 11 +R 10 +L 10 +R 10 +L 4 +U 4 +D 9 +U 8 +R 5 +D 7 +U 7 +L 6 +D 4 +L 9 +R 2 +U 8 +D 2 +L 2 +D 2 +U 6 +L 2 +R 9 +U 10 +D 11 +U 3 +R 9 +U 1 +L 11 +R 7 +L 4 +R 5 +U 10 +L 3 +R 10 +L 10 +D 2 +L 9 +D 9 +L 6 +D 11 +R 10 +L 2 +R 4 +D 2 +R 4 +D 8 +L 3 +U 10 +R 4 +L 2 +U 1 +L 3 +R 1 +L 2 +R 3 +D 2 +L 2 +D 3 +R 5 +U 10 +L 12 +R 5 +D 5 +U 9 +L 9 +D 2 +L 8 +U 2 +L 11 +U 5 +L 8 +U 7 +R 4 +U 10 +D 4 +L 5 +R 3 +D 8 +R 12 +L 5 +U 9 +L 10 +R 5 +U 10 +R 1 +L 5 +U 6 +D 7 +L 12 +D 2 +R 12 +L 1 +U 11 +D 8 +R 12 +L 8 +U 3 +R 9 +L 8 +D 2 +L 10 +D 10 +R 4 +D 2 +R 11 +U 4 +R 10 +U 7 +L 7 +D 5 +U 5 +R 9 +D 10 +L 10 +U 1 +D 11 +U 4 +D 5 +U 5 +D 8 +U 2 +D 4 +R 4 +L 5 +U 10 +D 12 +R 9 +L 11 +R 9 +L 1 +D 9 +L 11 +D 12 +U 4 +R 7 +D 1 +U 3 +L 4 +U 9 +R 12 +D 1 +L 7 +U 7 +D 6 +U 1 +R 3 +L 7 +U 5 +L 2 +D 10 +R 12 +L 3 +U 7 +D 10 +L 5 +R 1 +U 9 +L 1 +D 11 +R 5 +L 2 +D 1 +U 3 +R 2 +L 3 +U 5 +L 3 +D 5 +R 10 +L 7 +R 12 +U 4 +D 3 +R 3 +L 2 +R 7 +U 4 +D 9 +U 7 +D 1 +R 9 +L 2 +U 6 +R 5 +D 3 +U 7 +R 12 +L 10 +D 11 +L 8 +U 12 +D 13 +U 9 +D 5 +U 4 +R 2 +L 3 +U 13 +R 4 +L 9 +U 4 +L 3 +U 9 +R 1 +D 6 +U 4 +D 3 +U 5 +R 5 +L 11 +R 8 +D 1 +U 4 +D 10 +R 5 +D 10 +U 3 +D 4 +R 1 +U 3 +R 13 +L 6 +D 8 +R 12 +L 4 +U 2 +L 13 +D 11 +L 4 +U 8 +L 10 +R 2 +D 8 +R 11 +L 2 +D 8 +R 8 +L 10 +U 10 +L 4 +D 9 +L 7 +D 11 +L 10 +U 13 +L 6 +U 7 +D 8 +L 3 +R 10 +L 14 +U 13 +L 11 +D 5 +R 8 +U 2 +D 9 +L 14 +U 7 +R 4 +U 1 +D 8 +U 8 +D 9 +L 2 +D 7 +R 1 +D 9 +R 2 +U 4 +D 8 +L 9 +R 6 +L 2 +R 11 +D 6 +L 5 +U 8 +L 4 +R 3 +D 5 +L 3 +U 9 +R 3 +U 1 +D 7 +R 1 +L 10 +U 1 +L 8 +U 11 +D 8 +U 12 +R 9 +L 5 +D 10 +L 2 +R 8 +D 10 +R 6 +D 1 +L 11 +D 8 +R 7 +L 14 +D 12 +L 11 +R 11 +U 9 +R 12 +D 10 +L 12 +R 4 +L 8 +D 2 +R 3 +L 14 +R 7 +U 10 +R 1 +L 6 +R 4 +D 11 +L 13 +R 12 +U 4 +L 12 +U 10 +D 8 +R 10 +D 9 +R 13 +L 2 +U 2 +D 7 +U 7 +R 3 +D 3 +R 13 +U 8 +R 10 +U 13 +D 14 +R 11 +D 7 +R 2 +U 5 +D 2 +L 6 +U 14 +L 10 +R 9 +U 11 +R 12 +D 5 +L 11 +R 12 +U 11 +R 8 +L 2 +D 14 +U 3 +D 9 +U 5 +L 4 +U 5 +L 6 +D 3 +L 1 +R 10 +L 4 +D 12 +U 15 +L 5 +D 11 +L 15 +D 10 +L 14 +U 1 +L 14 +D 6 +R 6 +U 9 +R 1 +L 7 +D 11 +U 12 +D 2 +R 7 +L 2 +D 13 +U 13 +R 6 +L 3 +D 3 +R 11 +U 3 +D 3 +U 11 +L 10 +U 7 +R 7 +D 9 +U 10 +R 11 +U 12 +D 11 +R 11 +U 2 +R 2 +D 9 +R 12 +D 1 +L 11 +R 1 +U 2 +R 14 +L 4 +R 1 +D 12 +R 7 +U 12 +L 2 +U 5 +D 7 +R 15 +D 5 +L 9 +D 7 +R 10 +U 12 +D 10 +R 11 +D 5 +U 10 +R 2 +U 11 +R 3 +U 6 +D 14 +U 11 +D 5 +L 8 +D 6 +L 2 +U 2 +L 14 +R 8 +U 15 +L 10 +D 1 +R 4 +L 8 +D 7 +L 15 +U 10 +D 14 +U 9 +L 7 +R 13 +U 11 +R 15 +L 11 +R 2 +L 11 +R 14 +L 1 +D 10 +L 2 +U 7 +L 9 +D 12 +R 2 +L 4 +U 4 +R 9 +L 6 +R 13 +D 1 +U 13 +R 7 +D 3 +R 14 +L 12 +D 15 +R 16 +L 7 +R 2 +U 3 +R 9 +U 10 +D 6 +U 7 +L 11 +D 12 +L 16 +R 12 +D 10 +U 16 +D 9 +U 14 +L 14 +U 11 +D 14 +L 14 +D 10 +L 3 +D 10 +U 6 +D 11 +L 8 +U 4 +D 1 +U 5 +D 5 +L 4 +U 8 +R 3 +D 12 +U 4 +R 8 +D 6 +U 8 +D 2 +U 12 +L 6 +D 12 +R 7 +D 6 +U 7 +D 12 +L 3 +R 2 +L 12 +R 13 +U 16 +L 6 +D 8 +U 13 +R 14 +D 4 +U 7 +D 1 +R 4 +D 13 +R 10 +D 7 +R 11 +L 6 +U 6 +R 7 +L 8 +D 2 +L 11 +U 3 +L 12 +U 4 +D 11 +U 8 +D 10 +U 1 +R 12 +U 1 +L 15 +R 15 +D 2 +L 8 +D 13 +L 3 +R 8 +U 14 +R 5 +U 3 +D 15 +U 7 +D 1 +L 6 +D 8 +U 13 +R 6 +L 6 +D 3 +L 9 +D 17 +U 8 +R 16 +L 6 +D 9 +U 3 +L 10 +R 13 +L 14 +U 8 +R 7 +U 12 +D 14 +R 1 +D 3 +L 11 +R 8 +D 9 +R 17 +D 5 +R 17 +U 8 +L 10 +D 7 +U 4 +D 16 +L 9 +D 1 +L 16 +R 7 +L 1 +R 11 +U 10 +R 2 +U 10 +L 15 +U 10 +R 2 +D 11 +U 12 +L 15 +U 4 +D 2 +R 4 +U 2 +L 11 +R 16 +U 10 +R 4 +D 9 +U 7 +D 2 +R 10 +D 14 +L 10 +U 9 +R 7 +D 3 +R 7 +L 3 +U 15 +D 13 +L 17 +R 12 +U 13 +D 16 +U 13 +R 13 +U 14 +L 16 +U 7 +D 2 +R 11 +U 17 +D 9 +R 12 +U 16 +L 11 +R 3 +U 9 +L 6 +D 2 +U 1 +D 7 +L 1 +U 7 +D 8 +U 11 +L 4 +R 6 +L 2 +U 12 +L 13 +U 5 +L 17 +R 16 +D 10 +U 12 +L 7 +R 4 +U 8 +D 17 +R 13 +L 2 +D 5 +L 1 +R 2 +D 16 +U 9 +D 15 +L 8 +U 14 +R 9 +D 18 +U 16 +L 17 +U 9 +D 11 +U 17 +R 8 +D 17 +U 14 +D 8 +U 8 +R 8 +U 14 +R 5 +L 1 +R 3 +D 5 +U 10 +R 16 +U 18 +D 16 +U 11 +D 18 +U 13 +L 11 +D 2 +R 16 +D 15 +L 9 +D 12 +R 11 +L 8 +U 8 +R 10 +L 2 +D 6 +L 5 +D 9 +L 3 +D 1 +U 18 +D 12 +U 13 +L 6 +R 17 +D 10 +R 9 +L 6 +R 3 +U 1 +R 1 +U 6 +L 15 +U 8 +D 15 +U 14 +R 10 +L 6 +U 1 +L 12 +R 9 +D 13 +U 1 +L 16 +U 16 +L 13 +R 4 +U 3 +D 11 +L 12 +R 11 +U 17 +R 18 +L 4 +R 6 +L 18 +D 10 +L 16 +R 2 +D 4 +R 14 +D 11 +L 12 +R 7 +L 9 +U 12 +D 12 +R 4 +L 1 +D 14 +R 14 +L 3 +U 2 +L 6 +R 7 +D 6 +U 18 +L 17 +U 12 +R 12 +L 5 +D 13 +R 7 +D 8 +L 16 +D 13 +U 4 +D 3 +R 16 +L 9 +U 8 +D 15 +R 8 +L 12 +R 5 +L 1 +U 11 +D 11 +L 10 +U 7 +D 6 +L 15 +D 9 +R 10 +D 6 +U 14 +L 7 +U 19 +R 17 +L 12 +U 1 +L 9 +R 17 +D 12 +U 3 +L 15 +R 16 +D 15 +R 15 +L 1 +U 16 +R 19 +D 9 +L 16 +D 12 +R 8 +L 2 +D 16 +L 17 +U 16 +D 9 +L 9 +U 8 +L 9 +R 16 +L 3 +D 8 +U 7 +D 10 +U 17 +R 2 +D 16 +R 6 +U 9 +R 4 +L 17 +D 10 +U 10 +L 14 +D 9 +R 8 +L 9 +R 18 +U 13 +L 16 +R 2 +U 16 +L 11 +U 4 +L 13 +R 8 +L 19 +U 4 +D 10 +R 10 +U 14 +R 13 +L 17 +U 17 +R 12 +D 18 +R 2 +D 5 +L 12 +U 6 +D 7 +R 9 +L 13 +D 15 +R 9 +U 16 +D 14 +R 8 +L 8 +U 10 +L 8 +D 18 +U 8 +D 9 +L 6 +R 8 +U 4 +D 14 +L 13 +D 4 +R 3 +U 13 +L 2 \ No newline at end of file diff --git a/day9/main.py b/day9/main.py new file mode 100644 index 0000000..4a3c337 --- /dev/null +++ b/day9/main.py @@ -0,0 +1,56 @@ +import time + +moves = [] + +input_file = open("input.txt", "r") +lines = input_file.readlines() + +for line in lines: + line = line.strip() + moves.append((line[0], int(line.split(" ")[-1]))) + +head = (0, 0) +tail = (0, 0) +visited_positions = {tail} + + +def get_tails_new_pos(head, tail): + x_diff = head[0] - tail[0] + y_diff = head[1] - tail[1] + + if abs(x_diff) <= 1 and abs(y_diff) <= 1: + return tail + + new_x = tail[0] + new_y = tail[1] + + if abs(x_diff) > 1 and abs(y_diff) >= 1: + new_x = tail[0] + x_diff // 2 + new_y = tail[1] + y_diff + elif abs(y_diff) > 1 and abs(x_diff) >= 1: + new_y = tail[1] + y_diff // 2 + new_x = tail[0] + x_diff + elif abs(x_diff) > 1: + new_x = tail[0] + x_diff // 2 + elif abs(y_diff) > 1: + new_y = tail[1] + y_diff // 2 + + return (new_x, new_y) + + +for move in moves: + for _ in range(move[1]): + if move[0] == "U": + head = (head[0] + 1, head[1]) + elif move[0] == "D": + head = (head[0] - 1, head[1]) + elif move[0] == "R": + head = (head[0], head[1] + 1) + elif move[0] == "L": + head = (head[0], head[1] - 1) + + tail = get_tails_new_pos(head, tail) + + visited_positions.add(tail) + +print("Part 1: " + str(len(visited_positions))) diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..cbea2b3 --- /dev/null +++ b/input.txt @@ -0,0 +1,8 @@ +R 4 +U 4 +L 3 +D 1 +R 4 +D 1 +L 5 +R 2 \ No newline at end of file