Create day15.py

This commit is contained in:
kamoshi 2020-12-15 08:33:26 +01:00 committed by GitHub
parent da7668c586
commit 59884f4ec9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

46
2020/Python/day15.py Normal file
View file

@ -0,0 +1,46 @@
def parse_data() -> list[int]:
numbers = []
with open("input.txt") as file:
for line in file:
numbers += map(int, line.split(","))
return numbers
def solve_p1(data: list[int]) -> int:
turns = {}
curr_turn = 1
last_num = 0
def shift(_number, _turn) -> None:
if _number in turns:
(_turn_before, _turn_last) = turns[_number]
turns[_number] = (_turn_last, _turn)
else:
turns[_number] = (-1, _turn)
for number in data:
turns[number] = (-1, curr_turn)
last_num = number
curr_turn += 1
for i in range(curr_turn, 2021):
if last_num in turns:
(before, last) = turns[last_num]
if before != -1:
age = last - before
last_num = age
shift(age, i)
continue
last_num = 0
shift(0, i)
return last_num
def solve_p2(data: list[int]) -> int:
pass
DATA = parse_data()
print(solve_p1(DATA))
print(solve_p2(DATA))