diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2025-12-01 14:02:23 +0100 |
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2025-12-01 14:02:23 +0100 |
| commit | 0d0ff35caf7f2d8d541a43cb6da322f6fce11ff3 (patch) | |
| tree | 9f114d5c8f721952e2a264b2e0efdd3e25d20c86 /2025 | |
| parent | 9bffb39837bf92fb5eb4316291070d08886dd4a7 (diff) | |
Add 2025 day 1 solutions
Diffstat (limited to '2025')
| -rwxr-xr-x | 2025/01/puzzle-1.awk | 19 | ||||
| -rwxr-xr-x | 2025/01/puzzle-2.awk | 23 |
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 } |