2020 day15/python: add solution
This commit is contained in:
parent
a2513d6d92
commit
e822334261
4 changed files with 31 additions and 0 deletions
|
@ -19,5 +19,6 @@ https://adventofcode.com/2020/
|
||||||
|11 | `**` | | |
|
|11 | `**` | | |
|
||||||
|13 | | `**` | |
|
|13 | | `**` | |
|
||||||
|14 | | `**` | |
|
|14 | | `**` | |
|
||||||
|
|15 | `**` | | |
|
||||||
|
|
||||||
`test.sh` can be used to run all solutions and automatically compares them to (my) puzzle inputs and the expected outputs.
|
`test.sh` can be used to run all solutions and automatically compares them to (my) puzzle inputs and the expected outputs.
|
||||||
|
|
2
2020/data/day15.expected
Normal file
2
2020/data/day15.expected
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
496
|
||||||
|
883
|
1
2020/data/day15.input
Normal file
1
2020/data/day15.input
Normal file
|
@ -0,0 +1 @@
|
||||||
|
2,0,1,7,4,14,18
|
27
2020/day15/day15.py
Normal file
27
2020/day15/day15.py
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def run_game(init, iterations):
|
||||||
|
last_seen = {}
|
||||||
|
previous = None
|
||||||
|
|
||||||
|
for i, n in enumerate(init):
|
||||||
|
if previous is not None:
|
||||||
|
last_seen[previous] = i-1
|
||||||
|
previous = n
|
||||||
|
|
||||||
|
for i in range(i+1, iterations):
|
||||||
|
if previous in last_seen:
|
||||||
|
x = i - last_seen[previous] - 1
|
||||||
|
else:
|
||||||
|
x = 0
|
||||||
|
last_seen[previous] = i-1
|
||||||
|
previous = x
|
||||||
|
|
||||||
|
return previous
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
init = [int(n) for n in sys.stdin.read().split(',')]
|
||||||
|
print(run_game(init, 2020))
|
||||||
|
print(run_game(init, 30000000))
|
Loading…
Reference in a new issue