aboutsummaryrefslogtreecommitdiff
path: root/2025
diff options
context:
space:
mode:
Diffstat (limited to '2025')
-rwxr-xr-x2025/01/puzzle-1.awk19
-rwxr-xr-x2025/01/puzzle-2.awk23
2 files changed, 42 insertions, 0 deletions
diff --git a/2025/01/puzzle-1.awk b/2025/01/puzzle-1.awk
new file mode 100755
index 0000000..4ed1d7f
--- /dev/null
+++ b/2025/01/puzzle-1.awk
@@ -0,0 +1,19 @@
+#!/usr/bin/awk -f
+
+function mod(n, m)
+{
+ return ((n % m) + m) % m
+}
+
+BEGIN { dial = 50 }
+
+/^L/ { sign = -1 }
+/^R/ { sign = +1 }
+
+{
+ n = substr($0, 2)
+ if ((dial = mod(dial + n*sign, 100)) == 0)
+ acc++
+}
+
+END { print acc }
diff --git a/2025/01/puzzle-2.awk b/2025/01/puzzle-2.awk
new file mode 100755
index 0000000..b0516bf
--- /dev/null
+++ b/2025/01/puzzle-2.awk
@@ -0,0 +1,23 @@
+#!/usr/bin/awk -f
+
+function mod(n, m)
+{
+ return ((n % m) + m) % m
+}
+
+BEGIN { dial = 50 }
+
+{ n = substr($0, 2) }
+
+/^L/ {
+ sign = -1
+ acc += int(n / 100) + (n%100 >= dial && dial != 0)
+}
+/^R/ {
+ sign = +1
+ acc += int((dial + n) / 100)
+}
+
+{ dial = mod(dial + n*sign, 100) }
+
+END { print acc }