Files
advent-of-code/2020/day_9/encoding_error.py
2020-12-09 03:55:31 -03:00

48 lines
965 B
Python

def find_pair_sum(number, series):
i = 0
j = len(series) - 1
series.sort()
current = series[i] + series[j]
while i < j:
current = series[i] + series[j]
if current == number: return True
if current < number: i += 1
if current > number: j -= 1
return False
def find_contiguous_sum(number, series):
current = 0
i = 0
j = 0
while current != number:
if current < number: j += 1
elif current > number: i += 1
current = sum(series[i:j])
return series[i:j]
def solve_a(data):
for i in range(25, len(data)):
number = data[i]
if not find_pair_sum(number, data[i-25:i]):
return number
def solve_b(number, data):
series = find_contiguous_sum(number, data)
series.sort()
return series[0] + series[-1]
data = [int(line.strip()) for line in open('input')]
result = solve_a(data)
print(result)
print(solve_b(result, data))