1
0
aoc-2020/15/part2.py

24 lines
609 B
Python

def getStartingNumbers(filename):
with open(filename, "r") as f:
return [int(n) for n in f.read().split(",")]
numbers = getStartingNumbers("input.txt")
occurences = {n: [i] for i,n in enumerate(numbers)}
lastNumber = numbers[-1]
# 30000000
targetI = 30000000
i = len(numbers)-1
while i+1 < targetI:
if len(occurences[lastNumber]) > 1:
number = occurences[lastNumber][-1] - occurences[lastNumber][-2]
else:
number = 0
i += 1
occurences[number] = occurences.get(number, [])
occurences[number].append(i)
occurences[number] = occurences[number][-2:]
lastNumber = number
print(lastNumber)