2021 day10/python: add solution

This commit is contained in:
Xiretza 2021-12-10 06:32:54 +01:00
parent 0b617a70d0
commit f82eaa9490
1 changed files with 30 additions and 0 deletions

30
2021/day10/day10.py Executable file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env python
import sys
if __name__ == '__main__':
syntax_check_score = 0
autocomplete_scores = []
for line in sys.stdin.readlines():
stack = []
corrupted = False
for c in line.strip():
if c in '([{<':
stack.append({'(': ')', '[': ']', '{': '}', '<': '>'}[c])
elif stack.pop() != c:
syntax_check_score += {')': 3, ']': 57, '}': 1197, '>': 25137}[c]
corrupted = True
break
if corrupted: continue
autocomplete_score = 0
for c in stack[::-1]:
autocomplete_score *= 5
autocomplete_score += {')': 1, ']': 2, '}': 3, '>': 4}[c]
autocomplete_scores.append(autocomplete_score)
print(syntax_check_score)
autocomplete_scores.sort()
print(autocomplete_scores[len(autocomplete_scores)//2])