summaryrefslogtreecommitdiff
path: root/aoc/2025/06/python.py
diff options
context:
space:
mode:
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)