Day 15 (static array length 14s -> 10s)

This commit is contained in:
Sebastian Seedorf
2020-12-17 00:43:17 +01:00
parent adb0edd038
commit 0c36586b21

View File

@@ -2,7 +2,7 @@ from functools import reduce
def yield_numbers(line: str, target: int): def yield_numbers(line: str, target: int):
nums = {} nums = [None]*target
turn = 0 turn = 0
last_spoken = 0 last_spoken = 0
for starting in map(int, line.split(",")): for starting in map(int, line.split(",")):
@@ -11,7 +11,7 @@ def yield_numbers(line: str, target: int):
last_spoken = starting last_spoken = starting
yield turn, last_spoken, nums yield turn, last_spoken, nums
for t in range(turn, target): for t in range(turn, target):
n = t - nums[last_spoken] if last_spoken in nums else 0 n = t - nums[last_spoken] if nums[last_spoken] is not None else 0
nums[last_spoken] = t nums[last_spoken] = t
last_spoken = n last_spoken = n
yield t+1, last_spoken, nums yield t+1, last_spoken, nums