aoc2025/day10/1.py
2025-12-10 08:39:44 +01:00

28 lines
877 B
Python

with open(r'day10/input.txt', 'r') as input:
lines = input.read().split('\n')[:-1]
def push_button(config,button):
return tuple(not config[i] if i in button else config[i] for i in range(len(config)))
def find_min_tries(target,buttons,current):
if buttons == []:
return 99999
new = push_button(current,buttons[0])
if new == target:
return 1
return min(find_min_tries(target,buttons[1:],current),find_min_tries(target,buttons[1:],new)+1)
target = []
buttons = []
for line in lines:
split_lines = line.split(' ')
target.append(tuple(map(lambda x: True if x == '#' else False,split_lines[0][1:-1])))
buttons.append(list(map(lambda x: set(map(int,(x[1:-1]).split(','))),split_lines[1:-1])))
sum = 0
for i in range(len(lines)):
sum += find_min_tries(target[i],buttons[i],tuple(False for _ in target[i]))
print(sum)