diff --git a/15/15.py b/15/15.py new file mode 100644 index 0000000..ed0ff29 --- /dev/null +++ b/15/15.py @@ -0,0 +1,22 @@ +from collections import defaultdict + +numbers = [14,1,17,0,3,20] + +def f(numbers, nth): + d={} + for i, n in enumerate(numbers[:-1], 1): + d[n] = i + + prev = numbers[-1] + for i in range(len(numbers), nth): + if prev not in d: + d[prev] = i + prev = 0 + else: + next = i-d[prev] + d[prev] = i + prev = next + return prev + +print(f(numbers, 2020)) +print(f(numbers, 30_000_000))