Back to posts
1 min read

백준 16953번 A → B

On this page

백준 16953번: A → B

아이디어

A에서 B로 올리는게 아니라 B에서 A로 내려간다. B의 마지막 숫자가 1이면 무조건 지운다. B가 2로 나누어 떨어지면 무조건 나눈다. 둘 다 안되면 불가능! 연산 한 번 할때마다 카운트 증가.

코드

A, B = map(int, input().split())


def solve(a, b):
    cnt = 1
    while True:
        if b == a:
            return cnt
        if b % 10 == 1 and b != 1:
            b //= 10
            cnt += 1
        elif b % 2 == 0:
            b //= 2
            cnt += 1
        else:
            return -1


print(solve(A, B))

백준 16953번 A → B-1-f3c313bd0d.png

여담

3달전에 이상하게 풀었다.