day15 - shorter, faster, still too slow
This commit is contained in:
parent
017e04a27c
commit
5bda75e144
14
day15.py
14
day15.py
@ -8,19 +8,13 @@ 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_last = {v: i for i, v in enumerate(my_input)}
|
||||
memory_prev = {}
|
||||
memory = {v: i for i, v in enumerate(my_input)}
|
||||
last_spoken = my_input[-1]
|
||||
|
||||
for i in range(len(my_input), count):
|
||||
if last_spoken not in memory_prev:
|
||||
last_spoken = 0
|
||||
else:
|
||||
last_spoken = i - 1 - memory_prev[last_spoken]
|
||||
|
||||
if last_spoken in memory_last:
|
||||
memory_prev[last_spoken] = memory_last[last_spoken]
|
||||
memory_last[last_spoken] = i
|
||||
speak = i - 1 - memory.get(last_spoken, i - 1)
|
||||
memory[last_spoken] = i - 1
|
||||
last_spoken = speak
|
||||
|
||||
return last_spoken
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user