Помогите с задачей по Python
По приезде на дачу мама забрала ноутбук у Хакера Петра и отправила его за инструментами в сарай. На сарае висит кодовый замок. Секретную комбинацию мама записала на руке у Петра. Кодовый замок представляет собой n вращающихся дисков с написанными на них цифрами от 0 до 9. Хакер Пётр должен повернуть некоторые из дисков так, чтобы последовательность цифр на дисках образовала секретную комбинацию. За одно действие он может прокрутить один из дисков на одну цифру вперед или назад. В частности, за одно действие можно перейти от цифры 0 к цифре 9 и наоборот. Какое минимальное количество действий ему для этого потребуется? Входные данные В первой строке записано единственное целое число n (1 ≤ n ≤ 1000) — количество дисков на кодовом замке. Во второй строке записана строка из n цифр — исходное положение дисков. В третьей строке записана строка из n цифр — комбинация, открывающая замок. Выходные данные Выведите единственное целое число — минимальное количество действий, за которое Хакер Пётр откроет замок.
def min_actions(secret, current):
actions = 0
for i in range(len(secret)):
diff = int(secret[i]) - int(current[i])
if diff < 0:
diff += 10
actions += diff
return actions
secret = "12345"
current = "00000"
min_actions = min_actions(secret, current)
print(min_actions)
Ответы (1 шт):
Как я уже сказал в комментарии, нужно выбрать минимальную из разниц "вверх" или "вниз"
def min_actions(secret, current):
actions = 0
for i in range(len(secret)):
a = int(secret[i])
b = int(current[i])
diff = min((a-b)%10, (b-a)%10)
print(diff)
actions += diff
return actions