diff options
Diffstat (limited to 'day9/day9.py')
-rw-r--r-- | day9/day9.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/day9/day9.py b/day9/day9.py new file mode 100644 index 0000000..3bd8155 --- /dev/null +++ b/day9/day9.py @@ -0,0 +1,35 @@ +"""Day 9.""" +from itertools import permutations + +with open("input") as f: + nums = [int(x) for x in f.read().rstrip().split("\n")] + +preamble_length = 25 +invalid_number = None + +# Part 1 +for idx, val in enumerate(nums[preamble_length:], start=preamble_length): + pre = nums[idx - preamble_length: idx] + valid = False + for combs in permutations(pre, 2): + if sum(combs) == val: + valid = True + if not valid: + invalid_number = val + print(invalid_number) + break + +# Part 2 +found = False +for x in range(len(nums)): + for y in range(x + 1, len(nums)): + subset = nums[x:y] + total = sum(subset) + if total > invalid_number: + break + if total == invalid_number: + print(min(subset) + max(subset)) + found = True + break + if found: + break |