advent-of-code/2021/Python/day14.py
2021-12-14 11:05:54 +01:00

41 lines
780 B
Python

import re
input_pattern = re.compile(r"([A-Z]+) -> ([A-Z]+)")
def load():
with open("../.input/day14", "r") as f:
start, rest = f.read().split("\n\n")
return start, input_pattern.findall(rest)
def step(start, rules):
output = []
for pair in zip(start, start[1:]):
c1, c2 = pair
output.append(c1)
output.append(rules[c1+c2])
output.append(start[-1])
return output
def solve1():
start, rules = load()
rules = {k: v for k, v in rules}
for _ in range(10):
start = step(start, rules)
chars = {}
for c in start:
chars[c] = chars.get(c, 0) + 1
values = list(sorted(chars.values(), reverse=True))
return values[0] - values[-1]
if __name__ == "__main__":
print(solve1())