[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