diff --git a/Python/2024/07/main.py b/Python/2024/07/main.py new file mode 100644 index 0000000..33f0813 --- /dev/null +++ b/Python/2024/07/main.py @@ -0,0 +1,22 @@ +input = open("input", 'r') + +d = [] +for line in input: + ans, nums = line.split(": ") + d.append((int(ans), [int(num) for num in nums.split(" ")])) + +def run(ans, eq, p2=False): + if len(eq) == 1: + return ans == eq[0] + ops = {lambda x,y: (x*y), lambda x,y: (x+y)} + if p2: + ops.add(lambda x,y: int(str(x) + str(y))) + + x,y,*eqs = eq + for op in ops: + if run(ans, [op(x,y)] + eqs, p2): + return True + return False + +print(sum([ans for ans, eq in d if run(ans,eq)])) +print(sum([ans for ans, eq in d if run(ans,eq,True)]))