diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-09 07:58:32 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-09 07:58:32 +0100 |
| commit | 15a72a4f3a6e7b9276f3f501f3d29ee2d92666eb (patch) | |
| tree | 82b7771b936ff9fab71c0707c1bd7f79a2218a47 /20/py/d09.py | |
| parent | 26654567a4abd6e19766e946f769c6061f350d32 (diff) | |
| download | aoc-15a72a4f3a6e7b9276f3f501f3d29ee2d92666eb.tar.gz | |
add driver
Diffstat (limited to '20/py/d09.py')
| -rw-r--r-- | 20/py/d09.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/20/py/d09.py b/20/py/d09.py index 4379039..9950f16 100644 --- a/20/py/d09.py +++ b/20/py/d09.py @@ -7,23 +7,28 @@ def intify(_in): return list(int(n.strip()) for n in _in) -def pt1(_in): +def first_invalid(nums): valid = [] for i in range(25): for j in range(i+1, 25): - valid.append(_in[i] + _in[j]) - for i in range(25, len(_in)): - if _in[i] not in valid: - return _in[i] + valid.append(nums[i] + nums[j]) + for i in range(25, len(nums)): + if nums[i] not in valid: + return nums[i] valid = valid[24:] offset = 0 for j in range(1, 25)[::-1]: - valid.insert(offset, _in[i - j] + _in[i]) + valid.insert(offset, nums[i - j] + nums[i]) offset += j +def pt1(_in): + return first_invalid(intify(_in)) + + def pt2(_in): - invalid = pt1(_in) + _in = intify(_in) + invalid = first_invalid(_in) i, s, nums = 0, 0, deque() while s != invalid: @@ -44,6 +49,5 @@ if __name__ == "__main__": input = open(sys.argv[1], "r").readlines() else: input = open("../input/09", "r").readlines() - input = intify(input) print(pt1(input)) print(pt2(input)) |
