diff --git a/day08/part2.py b/day08/part2.py index 77a844e..dcb577d 100644 --- a/day08/part2.py +++ b/day08/part2.py @@ -20,7 +20,7 @@ for y in range(len(forest)): pos += dir score *= dir_score max_score = max(max_score, score) - print(max_score) +print(max_score) diff --git a/day09/input.txt b/day09/input.txt new file mode 100644 index 0000000..e54f034 --- /dev/null +++ b/day09/input.txt @@ -0,0 +1,2000 @@ +U 1 +R 2 +D 1 +L 1 +U 2 +D 1 +U 2 +L 1 +D 1 +U 2 +R 1 +U 1 +D 1 +R 1 +L 2 +D 1 +U 1 +D 1 +U 2 +D 2 +R 2 +D 1 +R 2 +D 2 +R 1 +L 2 +U 2 +D 2 +R 2 +D 1 +R 1 +L 1 +D 2 +U 2 +L 2 +U 2 +R 1 +L 1 +D 1 +R 1 +D 2 +U 1 +L 2 +R 1 +U 1 +D 1 +U 1 +D 2 +R 1 +L 1 +U 1 +L 1 +R 2 +U 1 +R 2 +L 2 +U 1 +R 1 +L 2 +R 2 +L 2 +U 1 +D 1 +U 2 +R 1 +D 1 +L 2 +D 1 +L 1 +U 1 +R 2 +U 1 +D 1 +L 2 +R 2 +D 2 +R 2 +D 1 +L 2 +D 1 +R 2 +L 1 +D 2 +R 2 +D 1 +U 1 +L 1 +R 2 +L 2 +D 1 +R 1 +L 1 +U 1 +L 1 +R 1 +U 2 +R 1 +D 2 +R 1 +L 2 +R 1 +L 1 +D 2 +R 2 +L 1 +U 1 +D 1 +L 2 +D 1 +L 1 +R 1 +U 1 +R 3 +U 2 +L 2 +R 1 +L 1 +D 1 +R 1 +U 2 +D 3 +L 1 +R 1 +U 2 +R 1 +U 1 +R 3 +L 3 +U 2 +D 1 +L 1 +R 1 +U 3 +D 1 +L 3 +D 2 +U 3 +R 3 +D 1 +L 3 +D 1 +U 1 +R 3 +L 2 +U 1 +R 3 +U 3 +L 3 +D 1 +R 2 +U 3 +R 2 +L 1 +U 3 +L 3 +R 3 +D 2 +U 1 +L 1 +D 1 +U 3 +D 1 +U 2 +R 1 +L 2 +R 2 +L 2 +D 3 +R 2 +D 2 +U 1 +L 2 +R 2 +L 1 +U 3 +D 3 +R 1 +L 1 +D 3 +L 2 +U 2 +R 3 +L 1 +D 2 +L 1 +R 2 +L 2 +U 2 +D 3 +R 2 +U 3 +D 1 +L 2 +D 3 +U 1 +R 3 +U 1 +R 2 +U 2 +D 1 +L 1 +D 3 +L 2 +U 1 +R 1 +L 1 +U 2 +D 3 +U 3 +R 3 +U 1 +R 1 +D 2 +R 1 +L 2 +D 2 +U 1 +R 3 +D 2 +U 2 +L 2 +R 3 +D 2 +U 1 +R 1 +L 3 +R 1 +U 1 +R 4 +L 2 +R 3 +D 3 +L 3 +D 3 +R 3 +L 2 +R 4 +D 1 +R 2 +U 3 +D 4 +U 2 +R 4 +U 2 +R 3 +L 2 +D 1 +U 3 +D 1 +L 4 +U 4 +D 4 +R 2 +U 1 +L 2 +R 2 +L 4 +R 3 +U 4 +D 3 +R 2 +L 2 +R 2 +D 2 +U 1 +R 2 +U 3 +R 4 +D 1 +L 4 +U 2 +R 3 +U 3 +R 4 +L 1 +D 3 +R 3 +D 4 +R 2 +L 3 +R 1 +D 4 +R 2 +L 2 +U 3 +R 3 +U 2 +R 3 +U 4 +R 1 +L 1 +D 4 +U 4 +D 3 +L 1 +D 3 +L 2 +U 2 +R 2 +D 3 +R 2 +U 1 +R 4 +D 3 +L 2 +D 1 +L 4 +D 1 +R 4 +D 4 +R 1 +U 3 +L 2 +U 1 +R 3 +U 2 +L 3 +D 1 +U 4 +L 2 +D 1 +L 2 +R 3 +U 4 +R 1 +U 1 +L 3 +U 4 +D 3 +L 2 +D 1 +L 3 +R 2 +D 4 +L 1 +D 5 +U 4 +D 2 +R 1 +D 3 +L 3 +R 1 +D 5 +U 3 +D 5 +L 2 +D 1 +L 3 +R 5 +U 4 +L 3 +D 4 +U 5 +D 5 +L 2 +U 5 +L 2 +R 3 +L 1 +U 2 +D 4 +R 3 +D 4 +U 5 +D 3 +U 4 +L 4 +R 1 +L 5 +U 5 +R 2 +U 4 +R 3 +D 1 +U 1 +R 2 +U 4 +R 2 +D 2 +U 1 +R 1 +L 2 +D 1 +U 5 +L 4 +R 2 +D 1 +U 1 +D 2 +U 2 +D 5 +L 2 +R 5 +U 5 +L 5 +D 2 +L 1 +U 3 +D 1 +R 3 +D 2 +L 3 +R 3 +D 3 +R 2 +L 1 +D 1 +U 2 +R 2 +L 2 +R 5 +U 4 +D 3 +L 4 +U 4 +D 1 +U 4 +D 2 +U 5 +L 4 +R 5 +D 4 +R 2 +D 2 +R 5 +D 4 +U 1 +D 3 +U 5 +R 3 +D 2 +R 5 +L 1 +U 5 +R 5 +U 1 +R 3 +U 3 +R 4 +U 1 +L 4 +R 1 +U 3 +L 2 +U 6 +D 4 +U 3 +D 1 +R 2 +L 6 +U 3 +D 4 +U 1 +L 6 +U 1 +R 1 +U 6 +D 5 +U 5 +R 4 +U 1 +L 4 +D 1 +U 5 +R 3 +L 2 +U 3 +L 6 +R 5 +U 4 +R 5 +D 1 +L 6 +U 3 +L 5 +U 2 +L 5 +R 2 +U 6 +R 6 +D 1 +R 1 +U 3 +R 6 +U 5 +L 4 +U 2 +R 5 +L 2 +U 1 +D 1 +U 5 +R 2 +U 2 +L 4 +R 2 +D 1 +L 4 +U 1 +L 6 +R 6 +U 2 +D 5 +U 5 +D 4 +L 1 +R 3 +L 5 +U 6 +R 4 +D 1 +U 2 +R 1 +D 3 +R 1 +L 5 +D 3 +R 3 +U 5 +L 6 +R 3 +U 5 +L 2 +U 3 +R 3 +D 3 +U 1 +L 2 +U 2 +L 3 +D 6 +L 3 +D 4 +R 4 +D 4 +U 6 +L 6 +D 2 +R 1 +U 3 +L 6 +R 4 +D 1 +L 2 +U 4 +L 6 +U 1 +L 4 +D 1 +L 3 +R 2 +L 1 +R 2 +L 3 +R 1 +U 7 +D 7 +L 7 +U 1 +R 2 +U 6 +R 4 +L 6 +U 3 +R 4 +U 7 +D 5 +R 6 +U 6 +L 6 +R 4 +D 1 +U 3 +R 5 +L 2 +D 2 +U 5 +L 1 +D 3 +R 5 +L 2 +U 4 +D 1 +R 5 +U 2 +R 4 +L 3 +R 4 +L 2 +D 2 +L 4 +D 1 +U 4 +D 4 +R 4 +L 5 +R 2 +D 2 +L 2 +D 1 +L 2 +D 1 +L 4 +D 5 +R 7 +U 7 +L 2 +D 3 +L 4 +R 7 +D 7 +U 2 +D 7 +L 6 +D 3 +U 5 +R 5 +D 3 +U 7 +D 3 +L 5 +D 3 +R 4 +D 4 +L 7 +D 6 +U 2 +L 3 +R 6 +U 5 +R 7 +U 3 +L 1 +R 7 +U 2 +R 4 +L 7 +U 2 +D 4 +U 5 +D 6 +U 4 +D 6 +U 7 +R 1 +L 4 +R 3 +L 6 +U 4 +R 7 +L 6 +U 7 +D 1 +U 7 +D 4 +L 1 +D 3 +R 6 +U 3 +R 5 +L 4 +R 4 +L 4 +U 7 +R 3 +L 4 +D 7 +R 6 +U 2 +L 3 +U 8 +D 3 +U 4 +D 1 +R 4 +U 5 +R 2 +U 4 +D 8 +L 2 +D 8 +R 4 +L 1 +R 7 +L 6 +U 4 +L 4 +D 7 +L 3 +D 2 +U 8 +R 8 +U 6 +R 7 +D 3 +U 7 +R 1 +L 8 +D 2 +L 3 +R 5 +D 3 +U 3 +R 8 +L 1 +R 6 +L 8 +U 2 +D 4 +R 6 +L 6 +D 5 +U 4 +L 6 +U 1 +L 6 +U 3 +D 5 +U 5 +L 6 +D 8 +R 5 +D 4 +R 6 +U 7 +L 1 +D 2 +R 2 +L 7 +R 4 +D 7 +L 3 +U 6 +R 7 +D 3 +L 3 +D 2 +U 1 +R 3 +L 8 +U 8 +D 5 +L 6 +R 3 +L 6 +D 3 +R 4 +U 3 +L 8 +D 7 +L 6 +R 5 +D 6 +R 6 +D 3 +L 4 +R 1 +D 6 +U 3 +R 1 +D 5 +U 4 +L 1 +R 2 +U 6 +D 6 +R 7 +L 1 +R 6 +U 7 +D 8 +R 2 +U 3 +L 6 +U 2 +D 6 +U 8 +L 3 +U 4 +D 6 +R 6 +L 5 +U 9 +R 8 +L 2 +D 6 +R 3 +L 4 +D 2 +L 7 +D 5 +L 7 +U 8 +D 6 +L 9 +D 3 +L 5 +U 3 +L 8 +D 7 +R 8 +U 2 +L 9 +U 7 +D 7 +U 6 +D 5 +R 2 +D 8 +R 9 +U 4 +R 1 +L 3 +D 7 +R 2 +L 6 +U 1 +L 7 +D 8 +U 9 +R 9 +D 1 +U 9 +D 1 +R 1 +D 6 +R 7 +D 1 +L 1 +R 6 +U 3 +R 7 +U 2 +R 5 +U 6 +R 2 +L 7 +R 8 +D 9 +U 5 +L 9 +R 9 +U 2 +L 7 +R 4 +U 3 +R 6 +L 6 +D 7 +L 4 +R 7 +D 5 +L 5 +D 7 +U 8 +R 8 +L 8 +R 5 +D 5 +U 2 +R 1 +U 5 +R 6 +L 8 +U 9 +R 4 +D 9 +R 4 +D 3 +U 8 +R 8 +U 9 +L 6 +D 9 +R 6 +U 5 +R 1 +U 1 +L 9 +U 8 +L 1 +U 5 +L 1 +D 7 +R 6 +U 1 +D 3 +R 2 +D 3 +R 8 +D 2 +U 4 +R 8 +L 9 +D 2 +U 2 +R 4 +D 10 +L 4 +U 3 +D 6 +R 4 +U 8 +L 8 +U 3 +L 10 +D 7 +U 2 +L 6 +R 2 +U 8 +L 10 +U 7 +D 8 +L 7 +U 10 +R 4 +U 1 +L 1 +D 4 +U 10 +D 9 +U 4 +L 10 +R 4 +D 5 +U 8 +D 1 +R 5 +D 10 +L 8 +D 1 +U 2 +L 7 +U 1 +L 6 +D 2 +R 3 +L 3 +U 5 +R 9 +U 10 +D 5 +U 7 +L 3 +R 5 +U 7 +L 4 +U 1 +D 2 +U 8 +L 8 +U 7 +R 9 +L 1 +D 10 +R 8 +L 4 +U 4 +L 10 +R 2 +L 3 +D 7 +L 10 +R 6 +U 5 +D 4 +U 6 +R 10 +D 8 +U 3 +L 1 +R 1 +D 2 +R 1 +U 1 +R 5 +U 9 +R 6 +U 10 +L 2 +U 5 +L 7 +R 8 +U 10 +D 6 +L 3 +U 2 +L 4 +R 6 +L 5 +D 9 +U 3 +D 3 +R 10 +L 10 +D 4 +R 7 +D 7 +U 3 +L 5 +R 5 +L 9 +R 2 +U 8 +R 10 +U 10 +L 4 +U 1 +D 2 +U 5 +L 11 +R 3 +L 10 +U 7 +D 6 +U 11 +D 11 +U 2 +L 7 +D 11 +U 8 +L 5 +U 7 +L 10 +D 7 +L 2 +U 5 +D 4 +R 9 +L 10 +D 1 +U 6 +R 2 +L 7 +U 1 +R 4 +D 11 +U 2 +R 9 +U 11 +R 6 +U 9 +L 9 +D 3 +R 6 +L 4 +R 1 +L 5 +R 2 +U 3 +R 1 +U 7 +D 1 +R 11 +L 2 +D 7 +L 10 +U 1 +R 8 +L 6 +U 7 +D 11 +R 1 +U 11 +L 8 +D 6 +R 6 +D 10 +U 2 +D 1 +L 6 +R 9 +L 8 +U 10 +R 4 +U 4 +R 9 +D 3 +R 8 +D 11 +L 4 +U 8 +D 6 +R 1 +U 5 +L 8 +U 6 +R 9 +U 1 +R 8 +D 6 +R 4 +D 7 +R 7 +L 1 +D 6 +L 3 +D 9 +L 10 +D 5 +U 10 +L 11 +D 5 +U 9 +R 10 +L 11 +R 1 +U 6 +L 4 +U 7 +R 9 +L 10 +D 9 +R 5 +L 2 +D 1 +U 12 +L 7 +D 9 +U 8 +R 12 +L 11 +D 12 +L 4 +D 10 +U 7 +L 5 +U 6 +L 5 +R 3 +L 9 +U 7 +L 8 +U 10 +L 8 +R 1 +U 3 +D 6 +L 12 +U 6 +D 7 +L 7 +U 2 +D 8 +U 10 +L 12 +R 5 +L 7 +R 11 +D 5 +L 2 +R 10 +L 7 +U 9 +D 6 +R 3 +U 9 +L 1 +U 2 +D 9 +U 1 +D 2 +L 11 +R 4 +D 4 +L 6 +R 10 +L 6 +U 10 +L 2 +D 3 +R 12 +L 5 +R 5 +L 9 +D 6 +R 12 +U 6 +R 6 +D 6 +R 3 +L 12 +D 12 +L 10 +R 7 +U 7 +L 8 +R 6 +L 5 +D 3 +L 5 +U 12 +L 6 +U 10 +D 11 +U 11 +D 1 +U 9 +R 8 +L 8 +U 5 +R 3 +L 4 +R 6 +U 10 +L 1 +D 1 +R 7 +D 8 +L 1 +D 6 +R 3 +U 2 +D 4 +L 10 +D 9 +L 12 +U 6 +D 9 +U 8 +D 8 +L 8 +U 1 +D 6 +U 6 +D 4 +R 9 +L 5 +U 6 +R 7 +U 6 +D 3 +U 6 +D 10 +U 1 +L 13 +D 4 +U 6 +L 10 +R 6 +D 7 +U 9 +R 2 +L 5 +D 4 +U 10 +D 7 +L 12 +D 2 +R 1 +D 4 +R 1 +U 6 +L 9 +D 12 +U 8 +L 6 +U 4 +R 2 +L 1 +D 12 +U 12 +L 1 +D 7 +L 3 +R 10 +L 10 +U 2 +D 8 +R 5 +U 2 +L 5 +R 8 +L 5 +D 9 +L 11 +U 1 +D 6 +R 11 +D 11 +L 6 +R 13 +L 8 +U 7 +R 11 +L 9 +D 5 +L 2 +U 1 +D 13 +R 3 +D 2 +R 9 +U 3 +R 8 +D 10 +U 5 +D 3 +L 2 +D 9 +R 10 +D 4 +U 13 +D 10 +U 2 +R 8 +D 9 +R 13 +U 4 +D 3 +L 6 +U 8 +L 3 +R 3 +D 4 +U 6 +L 7 +R 3 +L 1 +D 1 +R 5 +U 8 +D 8 +U 11 +R 5 +U 2 +R 10 +L 3 +D 4 +U 1 +R 9 +L 7 +R 6 +L 13 +U 8 +L 8 +D 5 +R 10 +L 9 +U 7 +L 9 +U 9 +L 7 +R 5 +L 5 +U 7 +D 12 +U 7 +D 6 +R 14 +D 5 +L 11 +R 6 +L 4 +U 8 +R 9 +U 7 +R 12 +L 10 +U 10 +L 11 +R 7 +D 11 +R 7 +L 4 +D 9 +L 13 +R 6 +L 13 +D 2 +R 13 +D 12 +R 4 +U 11 +R 4 +D 3 +R 3 +L 12 +R 3 +D 11 +R 7 +D 7 +R 3 +U 4 +R 12 +D 14 +R 3 +L 10 +U 9 +L 2 +U 14 +L 2 +D 7 +U 10 +D 4 +U 6 +L 1 +D 11 +R 10 +D 1 +L 2 +U 9 +L 6 +R 12 +D 11 +R 8 +U 7 +D 2 +U 4 +D 12 +L 1 +U 8 +D 14 +R 2 +D 13 +R 10 +D 10 +R 14 +L 4 +D 14 +L 6 +R 13 +L 12 +U 4 +R 13 +L 12 +D 14 +L 1 +U 1 +L 4 +D 14 +R 12 +D 6 +U 11 +L 12 +U 2 +R 8 +D 14 +U 13 +D 6 +L 7 +D 4 +U 3 +L 8 +U 2 +D 12 +L 13 +U 8 +R 4 +D 10 +L 10 +U 5 +D 3 +L 10 +D 13 +R 15 +U 9 +L 10 +D 1 +U 11 +D 7 +U 3 +R 6 +L 11 +D 4 +R 8 +D 3 +U 7 +D 6 +L 11 +D 14 +R 15 +L 14 +D 2 +L 11 +R 13 +U 4 +D 13 +L 6 +D 4 +L 15 +D 5 +L 6 +U 8 +R 13 +L 5 +U 4 +R 9 +L 13 +D 3 +U 11 +R 6 +L 14 +R 9 +U 5 +D 5 +U 9 +D 12 +R 11 +U 8 +D 1 +R 2 +U 6 +R 11 +L 4 +R 7 +D 6 +U 6 +D 1 +L 4 +R 14 +D 11 +R 3 +U 9 +D 15 +L 14 +D 9 +R 4 +U 14 +R 3 +L 14 +D 15 +L 12 +R 5 +D 6 +U 15 +D 13 +U 10 +R 4 +D 3 +R 11 +U 11 +R 4 +L 1 +D 11 +U 14 +D 1 +U 14 +R 1 +L 14 +D 4 +U 12 +D 9 +L 13 +U 10 +D 14 +L 4 +U 15 +L 12 +U 3 +D 6 +U 1 +D 2 +R 13 +L 12 +U 2 +L 12 +D 7 +L 3 +U 15 +L 5 +R 9 +L 12 +U 1 +L 16 +D 4 +L 5 +U 16 +R 6 +D 4 +U 6 +R 3 +L 1 +D 7 +L 4 +D 1 +U 5 +D 1 +L 6 +R 2 +L 8 +R 3 +L 12 +D 15 +R 9 +L 5 +U 12 +L 5 +U 9 +R 14 +D 16 +R 13 +L 12 +U 3 +L 16 +D 3 +R 6 +U 2 +R 4 +D 2 +L 6 +D 15 +L 11 +D 6 +U 9 +D 13 +U 7 +L 10 +D 12 +L 4 +R 9 +U 5 +R 9 +U 16 +R 15 +D 10 +R 14 +L 8 +U 8 +D 8 +R 13 +U 6 +R 5 +D 9 +L 11 +R 1 +D 4 +L 3 +D 1 +U 11 +R 2 +L 7 +R 14 +D 5 +R 16 +U 11 +L 2 +D 1 +U 4 +R 15 +L 13 +R 3 +U 1 +R 1 +U 3 +R 16 +D 1 +L 4 +R 9 +L 3 +D 14 +R 15 +D 13 +U 13 +D 5 +U 8 +L 3 +U 6 +D 10 +U 6 +D 2 +U 13 +R 5 +L 16 +R 16 +U 12 +R 10 +D 13 +L 1 +D 13 +R 15 +D 7 +R 7 +U 16 +R 10 +U 7 +L 14 +D 4 +L 6 +U 9 +L 15 +R 6 +L 14 +D 5 +R 6 +D 5 +L 6 +R 1 +U 13 +L 15 +R 14 +L 12 +D 2 +L 1 +U 1 +R 13 +L 11 +R 15 +D 17 +L 13 +R 8 +D 14 +R 2 +D 1 +R 3 +U 8 +R 8 +L 14 +D 6 +U 3 +D 9 +R 12 +L 13 +U 2 +D 8 +U 15 +D 16 +L 5 +D 7 +U 15 +R 7 +L 5 +R 13 +D 4 +L 7 +R 1 +D 7 +L 11 +R 2 +U 17 +L 6 +U 15 +D 5 +R 17 +D 12 +U 17 +L 3 +R 15 +U 7 +L 2 +R 5 +D 17 +L 12 +U 10 +D 5 +L 16 +R 17 +D 2 +R 15 +D 4 +U 1 +D 5 +U 10 +L 8 +U 16 +D 2 +L 11 +R 7 +U 15 +L 15 +D 2 +L 8 +R 3 +U 8 +R 7 +U 6 +L 17 +U 8 +R 6 +L 13 +R 6 +D 13 +L 9 +U 2 +R 7 +D 14 +L 10 +U 8 +D 10 +U 4 +R 3 +L 1 +D 5 +U 18 +L 1 +U 9 +D 4 +R 3 +D 11 +R 9 +U 18 +D 12 +R 13 +L 8 +D 6 +U 13 +R 6 +U 15 +R 14 +U 11 +R 11 +D 15 +L 7 +R 11 +D 16 +U 14 +R 15 +D 16 +R 3 +D 10 +R 6 +U 17 +L 9 +R 1 +D 12 +R 18 +U 11 +L 2 +R 5 +L 10 +U 13 +L 3 +D 15 +U 14 +D 13 +R 5 +U 15 +L 9 +U 6 +D 16 +L 1 +U 1 +D 12 +R 18 +L 13 +R 10 +U 14 +L 13 +U 3 +L 2 +R 11 +U 18 +D 14 +R 4 +L 6 +R 10 +U 18 +L 18 +R 9 +L 11 +U 4 +D 5 +L 15 +R 13 +L 18 +U 16 +L 1 +R 12 +U 17 +D 11 +U 1 +L 13 +U 7 +D 3 +U 5 +R 8 +D 4 +L 7 +D 17 +U 9 +R 1 +L 18 +U 13 +L 7 +U 12 +D 2 +R 18 +D 12 +U 11 +R 13 +U 12 +L 13 +R 7 +U 6 +D 5 +L 13 +D 15 +R 12 +D 8 +L 19 +U 10 +L 4 +D 18 +U 9 +D 5 +U 2 +L 1 +D 2 +R 8 +U 9 +R 1 +D 11 +U 18 +R 11 +D 19 +U 6 +D 14 +U 6 +D 4 +U 2 +L 12 +D 15 +L 10 +R 5 +U 16 +L 3 +D 8 +L 10 +D 7 +R 16 +D 8 +R 6 +L 16 +R 6 +D 8 +U 15 +D 1 +L 14 +U 14 +R 16 +L 14 +D 2 +R 6 +D 5 +R 14 +L 15 +D 2 +R 15 +L 4 +U 18 +R 8 +D 6 +R 7 +L 2 +U 5 +L 19 +R 17 +L 19 +R 13 +L 2 +U 7 +D 19 +R 9 +L 8 +D 18 +U 2 +R 3 +U 7 +D 9 +R 12 +U 13 +L 15 +U 2 +D 6 +R 18 +D 7 +L 10 +R 4 +L 12 +D 6 +L 4 +D 10 +L 7 +U 12 +L 9 +R 12 +L 13 +R 13 +L 18 +R 18 +U 7 +D 5 +R 8 +D 18 +L 11 +D 5 +L 1 +U 6 +R 19 +U 17 +R 16 +L 8 +R 11 +U 17 +D 1 +R 11 +L 12 +D 4 +U 13 diff --git a/day09/part1.py b/day09/part1.py new file mode 100644 index 0000000..8c7a561 --- /dev/null +++ b/day09/part1.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +import numpy as np + +lines = (x.strip() for x in open("input.txt")) +positions = set() +LEN = 2 +rope = [np.array((0, 0)) for i in range(LEN)] +dirs = { + "U": np.array((1, 0)), + "D": np.array((-1, 0)), + "L": np.array((0, -1)), + "R": np.array((0, 1)), +} + +for line in lines: + d, i = line.split(" ") + d, i = dirs[d], int(i) + for _ in range(i): + rope[0] += d + for p in range(1, 2): + diff = rope[p-1]-rope[p] + rope[p] += np.sign(diff) if sum(np.abs(diff)) > 2 else np.sign(diff-np.sign(diff)) + positions.add(tuple(rope[len(rope)-1])) + +print(len(positions)) diff --git a/day09/part2.py b/day09/part2.py new file mode 100644 index 0000000..f2d5ece --- /dev/null +++ b/day09/part2.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 +import numpy as np + +lines = (x.strip() for x in open("input.txt")) +positions = set() +rope = [np.array((0, 0)) for _ in range(10)] +dirs = {d: p for d, p in zip("UDLR", ((1, 0), (-1, 0), (0, -1), (0, 1)))} + +for line in lines: + d, n = dirs[line[0]], int(line[2:]) + for _ in range(n): + rope[0] += d + for i in range(1, len(rope)): + diff = rope[i-1] - rope[i] + rope[i] += np.sign(diff) if sum(np.abs(diff)) > 2 else np.sign(diff - np.sign(diff)) + positions.add(tuple(rope[len(rope)-1])) + +print(len(positions))