d9
This commit is contained in:
parent
e3de15393a
commit
cf13c83a63
52
day09.py
Normal file
52
day09.py
Normal file
@ -0,0 +1,52 @@
|
||||
from tools.aoc import AOCDay
|
||||
from typing import Any
|
||||
|
||||
|
||||
class Day(AOCDay):
|
||||
inputs = [
|
||||
[
|
||||
(10820, "input9")
|
||||
],
|
||||
[
|
||||
(5547, "input9")
|
||||
]
|
||||
]
|
||||
|
||||
def parse_input(self) -> (int, int):
|
||||
score = 0
|
||||
garbage_count = 0
|
||||
group_value = 1
|
||||
is_garbage = False
|
||||
ignore_next = False
|
||||
for c in self.getInput():
|
||||
if ignore_next:
|
||||
ignore_next = False
|
||||
elif not is_garbage and c == "<":
|
||||
is_garbage = True
|
||||
elif is_garbage and c == ">":
|
||||
is_garbage = False
|
||||
elif c == "!":
|
||||
ignore_next = True
|
||||
elif is_garbage:
|
||||
garbage_count += 1
|
||||
continue
|
||||
elif c == "{":
|
||||
score += group_value
|
||||
group_value += 1
|
||||
elif c == "}":
|
||||
group_value -= 1
|
||||
|
||||
return score, garbage_count
|
||||
|
||||
def part1(self) -> Any:
|
||||
s, _ = self.parse_input()
|
||||
return s
|
||||
|
||||
def part2(self) -> Any:
|
||||
_, c = self.parse_input()
|
||||
return c
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
day = Day(2017, 9)
|
||||
day.run(verbose=True)
|
||||
1
inputs/input9
Normal file
1
inputs/input9
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user