diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2025-12-07 08:27:36 +0100 |
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2025-12-07 08:27:36 +0100 |
| commit | 4c7b413ed9082d51b2af7f1c3cb2251ee2b1a338 (patch) | |
| tree | f09827f4e885126994120f276ab0cfd5b5552311 /2025 | |
| parent | de96af0762cf5abae09788434f407e7fc86d1b24 (diff) | |
Add 2025 day 6 solutions
Diffstat (limited to '2025')
| -rwxr-xr-x | 2025/06/puzzle-1.awk | 20 | ||||
| -rwxr-xr-x | 2025/06/puzzle-2.sh | 27 |
2 files changed, 47 insertions, 0 deletions
diff --git a/2025/06/puzzle-1.awk b/2025/06/puzzle-1.awk new file mode 100755 index 0000000..4bb4338 --- /dev/null +++ b/2025/06/puzzle-1.awk @@ -0,0 +1,20 @@ +#!/usr/bin/awk -f + +NR == 1 { + for (i = 1; i <= NF; i++) + xs[i, 2] = 1 +} + +!/[+*]/ { + for (i = 1; i <= NF; i++) { + xs[i, 1] += $i + xs[i, 2] *= $i + } +} + +/[+*]/ { + for (i = 1; i <= NF; i++) + total += xs[i, $i == "+" ? 1 : 2] +} + +END { print total } diff --git a/2025/06/puzzle-2.sh b/2025/06/puzzle-2.sh new file mode 100755 index 0000000..cba270f --- /dev/null +++ b/2025/06/puzzle-2.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +{ + printf '(' + for i in $(seq "$(head -n1 input | wc -c)") + do + num="$(cut -c $i input | paste -sd '')" + num="${num%${num##*[![:space:]]}}" + + case "$num" in + *[+*]) + test -n "$op" && printf ') + (' + op="${num#${num%?}}" + num="${num%?}" + printf '%d %s ' $num "$op" + ;; + '') + test "$op" = + + printf '%d' $? + ;; + *) + printf '%d %s ' $num "$op" + ;; + esac + done + printf ')\n' +} | bc |