diff options
Diffstat (limited to 'aoc/2025/06/python.py')
| -rwxr-xr-x | aoc/2025/06/python.py | 18 |
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) |
