[Python] ABC013 B

問題

B – 錠

回答

前方向と後ろ方向に全探索します。

a = int(input())
b = int(input())

def next_digit(num):
    if num == 9:
        return 0
    else:
        return num + 1

def prev_digit(num):
    if num == 0:
        return 9
    else:
        return num - 1

count_red = 0
a_tmp = a
while a_tmp != b:
    count_red += 1
    a_tmp = next_digit(a_tmp)

count_blue = 0
a_tmp = a
while a_tmp != b:
    count_blue += 1
    a_tmp = prev_digit(a_tmp)

print(min(count_red, count_blue))

数字は全部で10個あるので、片方の差が分かれば、もう一つの差は10からその片方の差を引くことで得ることができます。

a = int(input())
b = int(input())

diff_1 = abs(a-b)
diff_2 = 10 - diff_1

print(min(diff_1, diff_2))