From 5bda75e144ce572af675e05b4bbc6faffed85ba5 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Tue, 15 Dec 2020 06:46:48 +0100 Subject: [PATCH] day15 - shorter, faster, still too slow --- day15.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/day15.py b/day15.py index e4e51dd..e69b631 100644 --- a/day15.py +++ b/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