From 61deb3f67b80fc1d9dd7946cb24f1f1dfbb9cedd Mon Sep 17 00:00:00 2001 From: mhsn Date: Sat, 6 Dec 2025 11:38:48 +0000 Subject: 25-06 python p2 --- 2025/06/python.py | 13 ++++++++----- 1 file 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) -- cgit v1.2.3