aboutsummaryrefslogtreecommitdiff
path: root/2020/03
diff options
context:
space:
mode:
Diffstat (limited to '2020/03')
-rw-r--r--2020/03/input323
-rwxr-xr-x2020/03/puzzle-1.awk14
-rwxr-xr-x2020/03/puzzle-2.awk36
3 files changed, 373 insertions, 0 deletions
diff --git a/2020/03/input b/2020/03/input
new file mode 100644
index 0000000..6673c40
--- /dev/null
+++ b/2020/03/input
@@ -0,0 +1,323 @@
+....#..#.......#........#....#.
+..##.#.#.#...................#.
+....#.#.##..#....#......#......
+.........#.#......##.....#.....
+..........#.###.##...##........
+#....#.#.......##.....#..#.....
+#...........#.#...#..#..##.##..
+......##.............#.....#...
+..##..........###..#.#..##.....
+...........#........#......##..
+..##...........##..............
+..#......###.#.....#.#.#.......
+..#..#..#..........#.#....#....
+.#.....##......................
+...#...##..#...#.........#..##.
+.#......#..#..#...#......#.##..
+..##.##.......#..#.....#..#...#
+..............#..#..#...#......
+...#...#....##.....#...#...#...
+......................#...#....
+.......#......#...#..##...#.#..
+##......#..#.....#....#.....#..
+....#.#.##.#.#....#............
+#.....##.............#.........
+..........#...........#.#.....#
+...#...##....#.#........#..#...
+................#..#.##.##....#
+......#...#...##...##....#.....
+##....#..#..#...#..#...........
+#..................#...#.#..#..
+....##....##.#....#..#......#..
+.....#...........#.........##..
+..#..............#.........#..#
+......##....................#..
+..#.....###...####...#...#.##..
+#..#.#......#.....#.......#.#..
+##.#.........######........#...
+..#....###...#.#..............#
+.....#..............#.........#
+....#......#..#.........#...#..
+.....###.....#.###.......###...
+#.#..#.....#....##...#........#
+..##....#..#.........#...#.#...
+..#..##.............#....#.#.#.
+..##.#..#.#.#.........##.......
+#.#..#.........#..............#
+#..#.........###.......#.#..#.#
+.............#...#....#......#.
+..........#.#...##.###.....#.#.
+..#.....#......................
+.......#......###.#.......#....
+....#....#.........#...###.#.#.
+.#.............#............#..
+....#..#.............#.#....#..
+....#.....#...#...##.#.........
+..#...#...#..................#.
+........#....#.....#...........
+.....##.......#...#.#..#..#....
+...#............#..#.#.........
+......................#........
+....#......#.....#.#....#......
+.....#..#.........#.........##.
+...............#.....#....##...
+...#.#.#...#..#...........#....
+.#....###......##...#.#.#.#....
+.....#...#....####....##.......
+..#......#..#.....##.#...#.....
+...#.##..#....#..##.....#......
+..#......#...#...##.....#...#..
+......#.....#........#.........
+..#.#....#..............##....#
+..#...#......##............#...
+.##.#.......#.......#......#..#
+...##.##...#.....#.......#..#..
+......##..#....#.......#.......
+.....#..#..#.#.....#.....#...##
+##.#...#.#.#.....#...#.#.#.##.#
+...................###...#..#..
+.#.....##.#......#........#....
+.##...##.#..........#...#....#.
+......#..............#.#......#
+...#.......#..#...........#....
+.###...#............##..#...##.
+##..#.#.........#............#.
+#...#.#......#.##...........#.#
+.#.#...#........#......##......
+....#...#...#.....#...#....#...
+...##...........##.........#...
+.........#...#..###............
+..#........#...............#...
+.............#....#.#..........
+........#......#.#.......#....#
+.................#....##.#.##..
+..#...##........#..............
+#..#........#...#....#.........
+......#.#.....#.....#..###.#..#
+....#............#...#.#.#.....
+............#..........#...#...
+..........#....##.#.........#..
+..............#...#...#..#.....
+#......#....#..##....#......##.
+...#....#.................#....
+.#.##.............#...#....##..
+....#..#.........#..#....#....#
+..#.....##..#......#.#..#......
+..#..#.....#........#...#..#..#
+.........##.#.##.#.......#....#
+..#.......##.##...#.....#.....#
+.............##...#...........#
+..#......#..#....#...#..#.##...
+....#........#......#.........#
+.......#........#..#.#.#..##..#
+..#......#...........##...#....
+.....#..#.#...#..............##
+.#..#......#......#........#..#
+...##...............#....#.....
+.......#...#.......##..#.......
+.....#....#...#...#..#.....#.#.
+...#.........#.....#...........
+...#.....###....#....#...#...#.
+#..#.....#.........#.........#.
+.................#.#.....#....#
+...........#..........#..#.....
+........#.#....#...#..#.....###
+#............................#.
+..##..#..#...##.........#......
+......##....#.#...#.........#..
+......#..##.#......#..#.....#..
+...#.......##....#.#....#......
+.....#........#...#............
+#.......#...#.........#......#.
+......#......#....#..#.........
+..#.#........#..#......#....#..
+.#..#.#..........##....###.#..#
+...#....#.##..#...#....#.......
+..#.....#......#.###.......#...
+..............................#
+.....#..#...#...........#......
+.##...#....##....#.#.#.#....#.#
+.#...#....#...#........#.......
+....#............#...##..#.....
+....##..#....#....#.....#....##
+.............#..##.#.#.#.......
+#.......#.#.#.......#..#..#....
+#..#...........#.......###..#..
+.#..##.#.....#........#........
+..#.#.......#............#..#..
+...........#..#............##.#
+.....#.......#.....#..#.##.#..#
+......#......##.....##.........
+..##.#..#.#..#..#..............
+.....#.............##...#.#.##.
+.#......##.#..........#........
+..#..#.........#.....#.#.#.....
+..#.....#.......#.....#..#.....
+#.#.#........#.#...#....#..#...
+.#.#.......#............#....#.
+......#..................#....#
+.#...#...#.....#.#..........#..
+.#..##....####...........#.#...
+..##.....#...#.#....#....#.....
+#.....................#....#.#.
+###..###.#.#...........#.....##
+......#......#..........#......
+...#......#.##.....#......###.#
+.............#..#.#...........#
+..#.............#.#..#.....#...
+...#...............#....##...##
+........#.................#....
+#..###.....#.......##.#......##
+....#.#..............#.........
+#..........#.....#..##...#.....
+................#...#..#....#..
+..#...#....##..........#.#.....
+......#........##......#..#...#
+...#....#..#.....#.......#...#.
+.#.....#..#...#..###....#......
+....#.........#....#.#.#.....#.
+#.#....#...#....#.....#..##....
+.......#..#..#..........#...#..
+..#.#..#.....##.#.#............
+..#....#.....#..##..#..#.#..#..
+..#.##.#...........#...#..#....
+.........#........#...#........
+..#.#.#.......##.........#.##..
+#.#..........#.#...#..#......##
+.#..#....................#.#...
+.##......#................#...#
+..##.#######......#....#.......
+....#...##.#....#.#............
+.##....#...##.......#...#..#...
+...........#...#...#...#..#....
+#...#.....#.......#....#.....#.
+.............#.................
+........#.#.......#...#.#.#....
+..............#............#.#.
+......#......##..#.......#....#
+##...#..................#......
+.....#......###.....#.......#.#
+.....#.#............#.#........
+..#.#..#............#....#.#...
+##.#.###.#.#.#..#......#.......
+...##........#..#.....#.#.#..#.
+##......#.##.....####..#.......
+............#...#..#...#..#....
+...#..#................##.#..#.
+.#....#.#...........##.#.#...#.
+####..#...........#.......###..
+.......#.................#.....
+.......#....#.......##....#....
+..#.........#...#....#.........
+..........#..#...#.#...##..#...
+....##..........#.........##...
+#.........##..#.#..#.......#...
+.#...........#....#...#...#.#..
+....#..#.....#...##....#.#....#
+.#....#.....#......#..##.##.#.#
+#......#..#.......##...........
+...#..#...#.#.................#
+......#.......##....##.#......#
+....#....#.#.#.....#....#....#.
+..#..........#.##...##..#......
+...#..#........#....#.#..#....#
+##.......#........#..........#.
+.#........#.......#...#..##...#
+..#..#..##..#...........#...###
+..#......#..........#..##......
+.#.....#..#.#...#...#.........#
+#.#......##....................
+#...#.....##...........#.......
+........#...#....#.......##....
+...#.##...#....#....#..#..#..#.
+...#..#......##....#..#..##....
+#...#..........#.#.............
+##..#........##.....#.........#
+.....#......#.#...###..#.......
+#..##.#..#.###...........##..#.
+.....#....#..........#.......#.
+##.........##.#................
+....#.........#............##..
+.......#........#......#..#..##
+.#...#...##..#....#..#.........
+.............#...#.#........#..
+......#..#...#..#.###..#.......
+........##.#..#.#..#..#........
+#.##..#..#..........#...##..###
+.##...#............#.#...##..#.
+................#....##.#...#..
+#.................#..........#.
+...#..#..#.....................
+..#...##.#.#...................
+.....#...#.......#............#
+..#..#.........#..##.#..#.#...#
+.....#.#.....#.#.......#.....#.
+..................#..#....#.#..
+..#.....###.##.......##....#.#.
+..#......##.......#....##.#....
+....#...................#..##.#
+.......#....#.##.#.......#....#
+..#...#......#..#...###....#.#.
+..#..#.#....#...........#.....#
+.....#..#..#.......#........#..
+......#.##.#......#...........#
+#...#....#.#..##.##..#..##.....
+#...##....#.#...##........#....
+..##............#.#.#..........
+....#.....#.#..#.......#..#....
+#..#.#.....#..#..##...#..##....
+...##........#...........#...#.
+.####......#..##.........#.#...
+.......#.......................
+.................#....#..#.....
+.........##......###...........
+.##......#.#.#....#.#...#..###.
+....#......##.###.#.#..#.......
+..........#.......##......##..#
+...........#.......#..##.......
+.....###..#..............##....
+........##..#.#.#......#....#..
+#....#.........................
+...........#...............##..
+......#.................#......
+.....#...#..##...##...#...#....
+..........#.#...##.####......#.
+..#.#.....##....#...........#..
+..........#....#..#....##...#..
+.#.......#..##...#...#.....#...
+...##....#.#......##...##....#.
+#.......#.......#.##.#...#.#...
+#...#..................#......#
+..#.......#...............#..##
+#.....#..................#....#
+.##.....#.....#......####.....#
+..#........#...#.#........#...#
+..##.....#....#...#...........#
+..#..#.....##..#.##...#........
+..........###..#....##.....#...
+...#...#....#.##.#...#.#.......
+..##......#.......#.......##...
+............#............#.....
+.##....#.........#.............
+....#....#....#........##...#.#
+.......##......................
+..........#.#.................#
+......##.#...#.........#.....#.
+..#...#......#..#.............#
+..........###.#..#.#...#..#..#.
+#..#.#..#....##...#...#.#...#..
+.#........##...#......#.##.....
+...###.#...##..............##..
+#.#.#...#...#..#....#.#..#.....
+.#.#.##..#....#......#.#.......
+...#..#.#....##...........#..#.
+.....##..##......#.#...........
+......#.....#....####....#.....
+.#.#.#...#..#..#...........#...
+.....#......................#..
+.........#.........#.###.##....
+.....#......##..........#......
+..#...........##...........#...
+..............#.........#.....#
+..#....#..#...#...##.#.........
+.#.#.#....#..........#.........
diff --git a/2020/03/puzzle-1.awk b/2020/03/puzzle-1.awk
new file mode 100755
index 0000000..3eac2ba
--- /dev/null
+++ b/2020/03/puzzle-1.awk
@@ -0,0 +1,14 @@
+#!/usr/bin/env -S awk -f
+
+BEGIN { x = 1 }
+{
+ len = split($0, obs, "")
+
+ if (x > len)
+ x -= len
+ if (obs[x] == "#")
+ count++
+
+ x += 3
+}
+END { print count }
diff --git a/2020/03/puzzle-2.awk b/2020/03/puzzle-2.awk
new file mode 100755
index 0000000..88e0625
--- /dev/null
+++ b/2020/03/puzzle-2.awk
@@ -0,0 +1,36 @@
+#!/usr/bin/env -S awk -f
+
+BEGIN {
+ slope[1] = 1
+ slope[2] = 1
+ slope[3] = 1
+ slope[4] = 1
+ slope[5] = 1
+}
+
+{
+ len = split($0, obs, "")
+
+ right = 1
+ for (i = 1; i < 5; i++) {
+ if (slope[i] > len)
+ slope[i] -= len
+
+ if (obs[slope[i]] == "#")
+ count[i]++
+
+ slope[i] += right
+ right += 2
+ }
+
+ # Specific code for slope 5
+ if (NR % 2 == 1) {
+ if (slope[5] > len)
+ slope[5] -= len
+
+ if (obs[slope[5]++] == "#")
+ count[5]++
+ }
+}
+
+END { print count[1] * count[2] * count[3] * count[4] * count[5] }