import aoclib DAY = 9 TEST_SOLUTION_PART1 = 127 TEST_SOLUTION_PART2 = 62 def part1(test_mode=False): my_input = aoclib.getInputAsArray(day=DAY, return_type=int, test=test_mode) max_buffer_size = 5 if test_mode else 25 number_buffer = [] for number in my_input: current_buffer_size = len(number_buffer) if current_buffer_size == max_buffer_size: found_sum = False for check_number in number_buffer: if number - check_number in number_buffer: found_sum = True break if not found_sum: return number number_buffer.append(number) if current_buffer_size + 1 > max_buffer_size: number_buffer = number_buffer[1:] return 0 def part2(test_mode=False): my_input = aoclib.getInputAsArray(day=DAY, return_type=int, test=test_mode) sum_to_find = part1(test_mode) start_index = 0 stop_index = 1 thisSum = sum(my_input[start_index:stop_index]) while thisSum != sum_to_find: if thisSum > sum_to_find: start_index += 1 else: stop_index += 1 thisSum = sum(my_input[start_index:stop_index]) return min(my_input[start_index:stop_index]) + max(my_input[start_index:stop_index])