22 lines
525 B
Python
22 lines
525 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)}
|
|
|
|
while len(numbers) < 2020:
|
|
lastNumber = numbers[-1]
|
|
if len(occurences[lastNumber]) > 1:
|
|
number = occurences[lastNumber][-1] - occurences[lastNumber][-2]
|
|
else:
|
|
number = 0
|
|
occurences[number] = occurences.get(number, [])
|
|
occurences[number].append(len(numbers))
|
|
numbers.append(number)
|
|
|
|
print(numbers[2019])
|