day 8, generators are faster (2x)
This commit is contained in:
22
d08/run.py
Normal file
22
d08/run.py
Normal file
@@ -0,0 +1,22 @@
|
||||
import sys
|
||||
from itertools import cycle
|
||||
from math import lcm
|
||||
|
||||
I, _, *P = [l for l in sys.stdin.read().splitlines()]
|
||||
# 0000000000111111111
|
||||
# 0123456789012345678
|
||||
# BCN = (HFN, KFC)
|
||||
P = {l[0:3]:(l[7:10],l[12:15]) for l in P}
|
||||
|
||||
def countsteps(g):
|
||||
C = g
|
||||
N = 0
|
||||
for i in cycle(I):
|
||||
if C[2] == 'Z':
|
||||
break
|
||||
C = P[C][i == 'R']
|
||||
N += 1
|
||||
return N
|
||||
|
||||
print("part 1:", countsteps("AAA"))
|
||||
print("part 2:", lcm(*(countsteps(p) for p in P.keys() if p[2] == 'A')))
|
Reference in New Issue
Block a user