Watch
1
0
Fork
You've already forked advent-of-code
0
advent-of-code/2017/day09.py
2026-07-30 22:06:53 -04:00

46 lines
855 B
Python

def part1(text):
return score(clean(text))
def clean(text: str) -> str:
out = ""
i = 0
garbage = False
while i < len(text):
c = text[i]
if c == "!":
i += 2
continue
if garbage and c == ">":
garbage = False
elif garbage:
pass
elif c == "<":
garbage = True
else:
out += c
i += 1
assert not garbage, "All garbage must be closed"
return out
def score(text: str) -> int:
depth = 0
points = 0
for c in text:
if c == "{":
depth += 1
if c == "}":
points += depth
depth -= 1
assert depth == 0, "All groups must be closed"
return points
with open("input/day09.txt") as f:
puzzle_input = f.read()
print(part1(puzzle_input))