From 15a72a4f3a6e7b9276f3f501f3d29ee2d92666eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Wed, 9 Dec 2020 07:58:32 +0100 Subject: add driver --- 20/py/d09.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to '20/py/d09.py') 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)) -- cgit v1.2.1