From 55b0751df6e2c796e4cf0d6f7861c5ec5f40c650 Mon Sep 17 00:00:00 2001 From: kamoshi <18511281+kamoshi@users.noreply.github.com> Date: Wed, 9 Dec 2020 09:53:08 +0100 Subject: [PATCH] Create day09.py --- 2020/Python/day09.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 2020/Python/day09.py diff --git a/2020/Python/day09.py b/2020/Python/day09.py new file mode 100644 index 0000000..01eb575 --- /dev/null +++ b/2020/Python/day09.py @@ -0,0 +1,36 @@ +input_data = [] + + +with open("input.txt") as file: + for line in file: + input_data.append(int(line.rstrip())) + + +def solve_p1(data: list[int], preamble: int) -> int: + + def check_number(number: int, slice: list[int]): + for i in range(len(slice)): + for j in range(i + 1, len(slice)): + if number == slice[i] + slice[j]: + return True + return False + + for i in range(preamble, len(data)): + if not check_number(data[i], data[i-preamble:i]): + return data[i] + + return -1 + + +def solve_p2(data: list[int], solution_p1: int) -> int: + + for i in range(len(data)): + for j in range(i + 1, len(data)): + slice = data[i:j] + if solution_p1 == sum(slice): + return min(slice) + max(slice) + return -1 + + +print(solution1 := solve_p1(input_data, 25)) +print(solve_p2(input_data, solution1))