Files
AoC-2020/day15/day15.py
2020-12-17 08:28:11 +01:00

74 lines
1.8 KiB
Python

def part1():
file = open("input.txt")
lines = [i.strip() for i in file.readlines()]
numbers = lines[0].split(',')
history = {}
final_round = 2020
last_spoken = ''
for i in range(0, final_round):
if i < len(numbers):
# print(f'Turn {i + 1}: {numbers[i]}')
last_spoken = numbers[i]
history[last_spoken] = [i]
continue
if len(history[last_spoken]) == 1:
last_spoken = '0'
history[last_spoken].append(i)
else:
count = len(history[last_spoken])
last_spoken = str(history[last_spoken][count - 1] - history[last_spoken][count - 2])
if last_spoken not in history:
history[last_spoken] = [i]
else:
history[last_spoken].append(i)
# print(f'Turn {i + 1}: {last_spoken}')
print(f"Part 1: {last_spoken}")
def part2():
file = open("input.txt")
lines = [i.strip() for i in file.readlines()]
numbers = lines[0].split(',')
history = {}
final_round = 30000000
last_spoken = ''
for i in range(0, final_round):
if i < len(numbers):
# print(f'Turn {i + 1}: {numbers[i]}')
last_spoken = numbers[i]
history[last_spoken] = [i]
continue
if len(history[last_spoken]) == 1:
last_spoken = '0'
history[last_spoken].append(i)
else:
count = len(history[last_spoken])
last_spoken = str(history[last_spoken][count - 1] - history[last_spoken][count - 2])
if last_spoken not in history:
history[last_spoken] = [i]
else:
history[last_spoken].append(i)
# print(f'Turn {i + 1}: {last_spoken}')
print(f"Part 2: {last_spoken}")
if __name__ == "__main__":
part1()
part2()