35 lines
445 B
Python
35 lines
445 B
Python
![]() |
#!/usr/bin/env python
|
||
|
|
||
|
score = {
|
||
|
')': 3,
|
||
|
']': 57,
|
||
|
'}': 1197,
|
||
|
'>': 25137,
|
||
|
}
|
||
|
closing = {
|
||
|
'(': ')',
|
||
|
'[': ']',
|
||
|
'{': '}',
|
||
|
'<': '>',
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
def check_line_score(line):
|
||
|
stack = ""
|
||
|
for c in line:
|
||
|
if c in '{([<':
|
||
|
stack += c
|
||
|
continue
|
||
|
l = stack[-1]
|
||
|
if c != closing[l]:
|
||
|
return score[c]
|
||
|
stack = stack[:-1]
|
||
|
return 0
|
||
|
|
||
|
total = 0
|
||
|
with open("input01.txt","r") as f:
|
||
|
for line in f:
|
||
|
total += check_line_score(line.strip())
|
||
|
|
||
|
print(total)
|