diff --git a/15/part2.py b/15/part2.py new file mode 100644 index 0000000..9bad02f --- /dev/null +++ b/15/part2.py @@ -0,0 +1,24 @@ + + +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) \ No newline at end of file