24 lines
625 B
Python
24 lines
625 B
Python
from math import prod
|
|
from pathlib import Path
|
|
|
|
FILE = "input.txt"
|
|
|
|
def main():
|
|
raw_lines = Path(FILE).read_text().splitlines()
|
|
lines: list[list[str]] = [line.split() for line in raw_lines if line.strip()]
|
|
problems: list[list[str]] = [list(col) for col in zip(*lines)]
|
|
|
|
return sum(compute([int(x) for x in problem[:-1]], problem[-1]) for problem in problems)
|
|
|
|
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())
|