[2021] day 14 python naive

This commit is contained in:
Maciej Jur 2021-12-14 11:05:54 +01:00
parent 69b9561177
commit 399f190ec4
2 changed files with 142 additions and 0 deletions

102
2021/.input/day14 Normal file
View file

@ -0,0 +1,102 @@
CKKOHNSBPCPCHVNKHFFK
KO -> C
SO -> S
BF -> V
VN -> B
OV -> K
VH -> O
KV -> N
KB -> F
NB -> C
HS -> K
PF -> B
HB -> N
OC -> H
FS -> F
VV -> S
KF -> C
FN -> F
KP -> S
HO -> N
NH -> K
OO -> S
FB -> C
BP -> F
CH -> N
SN -> O
KN -> B
CV -> O
CC -> B
VB -> C
PH -> V
CO -> K
KS -> K
BK -> N
FH -> S
PV -> H
CB -> P
FO -> F
BB -> K
OB -> C
HH -> F
ON -> O
FK -> B
NF -> F
SV -> F
CP -> H
SS -> B
OP -> H
NS -> O
HK -> N
BC -> P
NV -> V
VS -> F
PC -> V
CS -> F
NP -> V
PS -> F
VC -> F
KK -> S
PO -> P
HF -> H
KC -> P
SF -> N
BV -> N
FF -> V
FV -> V
BO -> N
OS -> C
OF -> H
CN -> S
NO -> O
NC -> B
VK -> C
HN -> B
PK -> N
SK -> S
HV -> F
BH -> B
OK -> S
VO -> B
BS -> H
PP -> N
SC -> K
BN -> P
FC -> S
SB -> B
SH -> H
NN -> V
NK -> N
VF -> H
CF -> F
PB -> C
SP -> P
KH -> C
VP -> N
CK -> H
HP -> P
FP -> B
HC -> O
PN -> F
OH -> H

40
2021/Python/day14.py Normal file
View file

@ -0,0 +1,40 @@
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())