[2021] day 14 python naive
This commit is contained in:
parent
69b9561177
commit
399f190ec4
102
2021/.input/day14
Normal file
102
2021/.input/day14
Normal 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
40
2021/Python/day14.py
Normal 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())
|
||||
|
Loading…
Reference in a new issue