You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
50 lines
1.0 KiB
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
from copy import deepcopy
|
|
|
|
def sim(lf, days):
|
|
nf = {}
|
|
for i in range(days):
|
|
for k,v in lf.items():
|
|
if k == 7:
|
|
nf[6] = (nf[6] + v) if 6 in nf else v
|
|
elif k == 6:
|
|
nf[5] = v
|
|
elif k == 0:
|
|
nf[8] = v
|
|
nf[6] = (nf[6] + v) if 6 in nf else v
|
|
else:
|
|
nf[k-1] = v
|
|
lf = deepcopy(nf)
|
|
nf = {}
|
|
return sum(lf.values())
|
|
|
|
if __name__ == '__main__':
|
|
lines = open(sys.argv[1]).read().strip('\n\n').split('\n') # or split \n\n or sth similar
|
|
nums = [int(i) for i in lines[0].split(",")]
|
|
|
|
lf1 = {}
|
|
|
|
lf1[6] = 0
|
|
lf1[7] = 0
|
|
lf1[8] = 0
|
|
|
|
for n in nums:
|
|
if n not in lf1:
|
|
lf1[n] = 1
|
|
else:
|
|
lf1[n] += 1
|
|
|
|
lf2 = deepcopy(lf1)
|
|
|
|
|
|
|
|
# challenge 1
|
|
res1 = str(sim(lf1, 80))
|
|
print("challenge 1:" +"\n" + res1 + "\n")
|
|
|
|
# challenge 2
|
|
res2 = str(sim(lf2, 256))
|
|
print("challenge 2:" +"\n" + res2 + "\n")
|
|
|
|
|