diff --git a/2024/07/part2.py b/2024/07/part2.py new file mode 100644 index 0000000..57f8935 --- /dev/null +++ b/2024/07/part2.py @@ -0,0 +1,28 @@ +from part1 import * + + +def concat(num1: int, num2: int) -> int: + return int("{}{}".format(num1, num2)) + +def recurse_it_more(nums): + def s(start, nums): + if len(nums) == 1: + return [start + nums[0], \ + start * nums[0], \ + concat(start, nums[0])] + return s(start + nums[0], nums[1:]) \ + + s(start * nums[0], nums[1:]) \ + + s(concat(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_more(nums): + total += test_value + + print(total) diff --git a/2024/07/testinput b/2024/07/testinput new file mode 100644 index 0000000..fc6e099 --- /dev/null +++ b/2024/07/testinput @@ -0,0 +1,9 @@ +190: 10 19 +3267: 81 40 27 +83: 17 5 +156: 15 6 +7290: 6 8 6 15 +161011: 16 10 13 +192: 17 8 14 +21037: 9 7 18 13 +292: 11 6 16 20