Files
python-aoc-2021/day10/part1.py
Sebastian Seedorf 30e7bec871 Day 10
2021-12-10 10:57:14 +01:00

18 lines
439 B
Python

#!/usr/bin/env python3
lines = (x.strip() for x in open("input.txt"))
cnt = 0
OPEN, CLOSE, PENALTY = "([{<", ")]}>", [3, 57, 1197, 25137]
MAP_CLOSE, MAP_PENALTY = dict(zip(OPEN, CLOSE)), dict(zip(CLOSE, PENALTY))
for line in lines:
stack = []
for char in line:
if char in OPEN:
stack.append(char)
elif MAP_CLOSE[stack.pop()] != char:
cnt += MAP_PENALTY[char]
break
print(cnt)