Files
advent-of-code-2025/day6/part2.py
2025-12-08 10:41:08 -08:00

32 lines
776 B
Python

from math import prod
from pathlib import Path
FILE = "input.txt"
def main():
raw_lines = Path(FILE).read_text().splitlines()
operators = raw_lines[-1].split()
operands: zip[tuple[str]] = zip(*raw_lines[:-1])
vals: list[int] = []
sum = 0
for val in operands:
if all(v == ' ' or v == '' for v in val):
sum += compute(vals, operators.pop(0))
vals = []
continue
vals.append(int("".join(val).strip()))
return sum + compute(vals, operators.pop(0))
def compute(vals: list[int], op: str) -> int:
if op == '+':
return sum(vals)
elif op == '*':
return prod(vals)
else:
print(f"unknown operator: {op}")
return 0
if __name__ == "__main__":
print(main())