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):
|
def part1(test_mode=False, count=2020):
|
||||||
my_input = aoclib.getInputAsArraySplit(day=DAY, return_type=int, split_char=",", test=test_mode)
|
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 = {v: i for i, v in enumerate(my_input)}
|
||||||
memory_prev = {}
|
|
||||||
last_spoken = my_input[-1]
|
last_spoken = my_input[-1]
|
||||||
|
|
||||||
for i in range(len(my_input), count):
|
for i in range(len(my_input), count):
|
||||||
if last_spoken not in memory_prev:
|
speak = i - 1 - memory.get(last_spoken, i - 1)
|
||||||
last_spoken = 0
|
memory[last_spoken] = i - 1
|
||||||
else:
|
last_spoken = speak
|
||||||
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
|
|
||||||
|
|
||||||
return last_spoken
|
return last_spoken
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user