24 lines
566 B
Python
24 lines
566 B
Python
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)
|