my advent of code 2021 solutions
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.3 KiB

import sys
class lines:
def __init__(self, inp):
self.line = inp
def solve(self):
counter = True
counter2 = 0
operators = ['()', '[]', '<>', '{}']
scores = [('(]', 57), ('(}', 1197), ('(>', 25137), ('[)', 3), ('[}', 1197), ('[>', 25137), ('{)', 3), ('{]', 57), ('{>', 25137), ('<)', 3), ('<]', 57), ('<}', 1197)]
scores2 = [('(', 1), ('[', 2), ('{', 3), ('<', 4)]
while counter:
counter = False
for i in operators:
if i in self.line:
self.line = self.line.replace(i, '')
counter = True
for i in scores:
if i[0] in self.line:
return i[1], None
for i in range(len(self.line)-1, -1, -1):
counter2 = counter2*5
for f in scores2:
if self.line[i] == f [0]:
counter2 += f[1]
return 0, counter2
inp = []
solution = 0
solution2 = []
with open(sys.argv[1], 'r') as f:
for i in f.readlines():
i = i.strip()
inp.append(lines(i))
for f in inp:
tem1, temp2 = f.solve()
solution += tem1
if temp2 is not None:
solution2.append(temp2)
solution2 = sorted(solution2)
temp3 = len(solution2) // 2
print(solution2[temp3])
print(solution)