33 lines
842 B
Python
33 lines
842 B
Python
|
import itertools
|
||
|
|
||
|
|
||
|
def main():
|
||
|
with open("day9.txt", "rt") as f:
|
||
|
series = [int(line.rstrip()) for line in f.readlines()]
|
||
|
|
||
|
# Part 1
|
||
|
frame_len = 25
|
||
|
for i in range(len(series) - frame_len):
|
||
|
frame = series[i : i + frame_len]
|
||
|
n = series[i + frame_len]
|
||
|
for a, b in itertools.combinations(frame, 2):
|
||
|
if a + b == n:
|
||
|
break
|
||
|
else:
|
||
|
print("Invalid N:", n)
|
||
|
break
|
||
|
|
||
|
# Part 2
|
||
|
for i in range(len(series)): # what is indexerror when you know it breaks
|
||
|
for j in range(1, len(series)):
|
||
|
frame = series[i : i + j + 1]
|
||
|
if (s := sum(frame)) == n:
|
||
|
print("Answer:", min(frame) + max(frame))
|
||
|
return
|
||
|
elif s > n:
|
||
|
break
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|