-
Notifications
You must be signed in to change notification settings - Fork 0
/
day14.py
29 lines (25 loc) · 886 Bytes
/
day14.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import re
from collections import Counter, defaultdict
def run(n, template, rows):
chars = defaultdict(int, Counter(template))
template = Counter(zip(template, template[1:]))
print(template)
for _ in range(n):
temp = defaultdict(int)
for pair, count in template.items():
chars[rows[pair]] += count
temp[pair[0], rows[pair]] += count
print(pair[0], rows[pair])
print(temp)
print('------')
temp[rows[pair], pair[1]] += count
print(temp)
print('------ ------')
template = temp
return max(chars.values()) - min(chars.values())
with open('input/demo.txt') as f:
template, rows = f.read().split('\n\n')
rows = re.findall(r'(\w+) -> (\w+)', rows)
rows = {tuple(pair): value for pair, value in rows}
run(1, 'NNCB', rows)
# run(40, template, rows)