aboutsummaryrefslogtreecommitdiff
path: root/2020/03/puzzle-2.awk
diff options
context:
space:
mode:
Diffstat (limited to '2020/03/puzzle-2.awk')
-rwxr-xr-x2020/03/puzzle-2.awk36
1 files changed, 36 insertions, 0 deletions
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] }