summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2025-12-06 11:38:48 +0000
committermhsn <mail@mhsn.net>2025-12-06 12:57:19 +0000
commit61deb3f67b80fc1d9dd7946cb24f1f1dfbb9cedd (patch)
treef9c8e23bc0873acb39e1893698067281ef001525
parent4ccb030e234e34cb6a3fdc73f1158ab1b1a9020e (diff)
downloadaoc-61deb3f67b80fc1d9dd7946cb24f1f1dfbb9cedd.tar.gz
aoc-61deb3f67b80fc1d9dd7946cb24f1f1dfbb9cedd.zip
25-06 python p2
-rwxr-xr-x2025/06/python.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/2025/06/python.py b/2025/06/python.py
index 0f0aeb9..4c57829 100755
--- a/2025/06/python.py
+++ b/2025/06/python.py
@@ -2,14 +2,17 @@
from math import prod
from fileinput import input
+from itertools import takewhile, repeat
-lines = [line.strip() for line in input()]
-nums = [map(int, row.split()) for row in lines[:-1]]
-fs = [prod if s == "*" else sum for s in lines[-1].split()]
+*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)))
-silver = sum(f(ns) for f, ns in zip(fs, zip(*nums)))
-gold = 0
+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)