From 0d0ff35caf7f2d8d541a43cb6da322f6fce11ff3 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Mon, 1 Dec 2025 14:02:23 +0100 Subject: Add 2025 day 1 solutions --- 2025/01/puzzle-1.awk | 19 +++++++++++++++++++ 2025/01/puzzle-2.awk | 23 +++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100755 2025/01/puzzle-1.awk create mode 100755 2025/01/puzzle-2.awk (limited to '2025') 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 } -- cgit v1.2.3