diff --git a/day15/day15.py b/day15/day15.py index adcc071..fc82ea8 100644 --- a/day15/day15.py +++ b/day15/day15.py @@ -12,7 +12,7 @@ def part1(): for i in range(0, final_round): if i < len(numbers): - print(f'Turn {i + 1}: {numbers[i]}') + # print(f'Turn {i + 1}: {numbers[i]}') last_spoken = numbers[i] history[last_spoken] = [i] continue @@ -34,8 +34,38 @@ def part1(): def part2(): - pass - # print("Part 2: ") + 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__":