summaryrefslogtreecommitdiff
path: root/aoc/2025/06/python.py
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2026-03-18 21:48:13 +0000
committermhsn <mail@mhsn.net>2026-03-18 21:48:13 +0000
commit86bac31392a76da84817eec020d2b84d099b3cc1 (patch)
treee2ee52db59b86b914d5b4bcceb19c9b5d899fff4 /aoc/2025/06/python.py
parent62fe361fc42dea75deaf7ac31c0ba6ba80e26a9c (diff)
downloadpuzzles-86bac31392a76da84817eec020d2b84d099b3cc1.tar.gz
puzzles-86bac31392a76da84817eec020d2b84d099b3cc1.zip
add other challenges supportHEADmaster
Diffstat (limited to 'aoc/2025/06/python.py')
-rwxr-xr-xaoc/2025/06/python.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/aoc/2025/06/python.py b/aoc/2025/06/python.py
new file mode 100755
index 0000000..4c57829
--- /dev/null
+++ b/aoc/2025/06/python.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+from math import prod
+from fileinput import input
+from itertools import takewhile, repeat
+
+*nums, ops = [line.strip("\n") for line in input()]
+ops = [prod if op == "*" else sum for op in ops.split()]
+
+horizontal = [map(int, row.split()) for row in nums]
+silver = sum(op(chunk) for op, chunk in zip(ops, zip(*horizontal)))
+
+vertical = ("".join(ds).strip() for ds in [*zip(*nums)])
+chunks = repeat(lambda: [*map(int, takewhile(bool, vertical))])
+gold = sum(op(chunk()) for op, chunk in zip(ops, chunks))
+
+print("silver:", silver)
+print("gold:", gold)