#!/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")