import aoclib DAY = 15 TEST_SOLUTION_PART1 = 436 TEST_SOLUTION_PART2 = 175594 def part1(test_mode=False, count=2020): my_input = aoclib.getInputAsArraySplit(day=DAY, return_type=int, split_char=",", test=test_mode) memory = {v: i for i, v in enumerate(my_input)} last_spoken = my_input[-1] for i in range(len(my_input), count): speak = i - 1 - memory.get(last_spoken, i - 1) memory[last_spoken] = i - 1 last_spoken = speak return last_spoken def part2(test_mode=False): return part1(test_mode, count=30000000)