advent24-llm / day07 /solution_gemini-1.5-pro.py
jerpint's picture
Add solution files
a4da721
def solve_part1(equation):
test_value, numbers_str = equation.split(":")
test_value = int(test_value)
numbers = [int(x) for x in numbers_str.split()]
def evaluate(index, current_value):
if index == len(numbers):
return current_value == test_value
if evaluate(index + 1, current_value + numbers[index]):
return True
if evaluate(index + 1, current_value * numbers[index]):
return True
return False
return evaluate(1, numbers[0])
def solve_part2(equation):
test_value, numbers_str = equation.split(":")
test_value = int(test_value)
numbers = [int(x) for x in numbers_str.split()]
def evaluate(index, current_value):
if index == len(numbers):
return current_value == test_value
if evaluate(index + 1, current_value + numbers[index]):
return True
if evaluate(index + 1, current_value * numbers[index]):
return True
if evaluate(index + 1, int(str(current_value) + str(numbers[index]))):
return True
return False
return evaluate(1, numbers[0])
with open("./input.txt") as f:
equations = f.readlines()
part1_sum = 0
for equation in equations:
if solve_part1(equation.strip()):
test_value, _ = equation.split(":")
part1_sum += int(test_value)
print(part1_sum)
part2_sum = 0
for equation in equations:
if solve_part2(equation.strip()):
test_value, _ = equation.split(":")
part2_sum += int(test_value)
print(part2_sum)