diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2025-12-07 07:32:00 +0100 |
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2025-12-07 07:32:00 +0100 |
| commit | de96af0762cf5abae09788434f407e7fc86d1b24 (patch) | |
| tree | ca8dec8427b460712d3818f28a77803bede21f8e | |
| parent | 703c33211b15b714f00aaeefc880f3c5d594493b (diff) | |
Add 2025 day 5 solutions
| -rwxr-xr-x | 2025/05/puzzle-1.awk | 19 | ||||
| -rwxr-xr-x | 2025/05/puzzle-2.awk | 31 |
2 files changed, 50 insertions, 0 deletions
diff --git a/2025/05/puzzle-1.awk b/2025/05/puzzle-1.awk new file mode 100755 index 0000000..acfe21b --- /dev/null +++ b/2025/05/puzzle-1.awk @@ -0,0 +1,19 @@ +#!/usr/bin/awk -f + +BEGIN { FS = "-" } + +NF == 2 { + xs[NR, 1] = $1 + xs[NR, 2] = $2 +} + +NF == 1 { + for (i = 1; i <= length(xs) / 2; i++) { + if ($1 >= xs[i, 1] && $1 <= xs[i, 2]) { + cnt++ + break + } + } +} + +END { print cnt } diff --git a/2025/05/puzzle-2.awk b/2025/05/puzzle-2.awk new file mode 100755 index 0000000..3dfc661 --- /dev/null +++ b/2025/05/puzzle-2.awk @@ -0,0 +1,31 @@ +#!/usr/bin/gawk -f + +function rangecmp(i1, v1, i2, v2) +{ + return v1[1] - v2[1] +} + +function max(x, y) +{ + return x > y ? x : y +} + +BEGIN { FS = "-" } + +NF == 2 { + xs[NR][1] = $1 + xs[NR][2] = $2 +} + +END { + asort(xs, xs, "rangecmp") + for (i in xs) { + if (xs[i][2] <= m) + continue + cnt += xs[i][2] - max(xs[i][1], m) + if (xs[i][1] > m) + cnt++ + m = xs[i][2] + } + print cnt +} |