1
0
aoc-2020/15/part2.py

29 lines
602 B
Python

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