puzzle6.py (593B)
1 with open('files/puzzle6.txt') as f: 2 memory_banks = [int(i) for i in f.read().split('t')] 3 4 cycles = 0 5 my_map = {} 6 7 while "".join([str(bank) for bank in memory_banks]) not in my_map: 8 my_map["".join([str(bank) for bank in memory_banks])] = cycles 9 10 for idx, bank in enumerate(memory_banks): 11 if bank == max(memory_banks): 12 memory_banks[idx] = 0 13 for i in range(bank): 14 memory_banks[(i + idx + 1) % len(memory_banks)] += 1 15 break 16 cycles += 1 17 18 print cycles 19 print cycles - my_map["".join([str(bank) for bank in memory_banks])]