From 64bd67c3b6e4c59e2d06f345e295ab0a5c4a86dc Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Sun, 29 Dec 2024 00:21:34 +0100 Subject: [PATCH] 2024(6): get rekt --- 2024/07/part1.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 2024/07/part1.py diff --git a/2024/07/part1.py b/2024/07/part1.py new file mode 100644 index 0000000..c11b9aa --- /dev/null +++ b/2024/07/part1.py @@ -0,0 +1,37 @@ +def load_data(filename="input"): + with open(filename, "r") as fp: + lines = fp.read().splitlines() + + ret = [] + + for line in lines: + splits = line.split(": ") + test_value = int(splits[0]) + nums = list(map(int, splits[1].split(" "))) + + #print(test_value) + #print(nums) + #print() + + ret.append((test_value, nums)) + + return ret + +def recurse_it_all(nums): + def s(start, nums): + if len(nums) == 1: + return [start + nums[0], start * nums[0]] + return s(start + nums[0], nums[1:]) + s(start * nums[0], nums[1:]) + + return s(nums[0], nums[1:]) + +if __name__ == "__main__": + data = load_data() + + total = 0 + + for test_value, nums in data: + if test_value in recurse_it_all(nums): + total += test_value + + print(total)