Algorithm/BFS, DFS

[백준] 16953번 A → B

등촌동 꼬북이 2020. 9. 20. 17:40

숨바꼭질을 풀었다면 쉽게 풀 수 있는 문제

 

from queue import Queue

LIMIT = 1000000001

def BFS():
    flag = 0
    counter = 1
    que = Queue()
    que.put([A, counter])
    while not que.empty():
        tx, tc = que.get()
        counter = tc
        if tx == B:
            flag = 1
            break
        for nx in (tx * 2, int(str(tx)+'1')):
            if 0 < nx < LIMIT:
                que.put([nx, tc + 1])
    if flag:
        return counter
    return -1

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

print(BFS())