Jae-Kyung Cho LLM Developers who was a Robotics engineer

Baekjoon-13549-숨바꼭질 3

N,K = map(int, input().split())

queue = [N]
visited = [-1 for _ in range(int(1e5+1))] # 걸린 시간, 경우의 수
visited[N] = 0

while queue:
    pos = queue.pop(0)

    jump = 1
    if pos != 0:
        while pos*(2**jump) <= int(1e5):
            if visited[pos*(2**jump)] == -1:
                visited[pos*(2**jump)] = visited[pos*(2**(jump-1))]
                queue.append(pos*(2**jump))
            if pos*(2**jump) > K:
                break
            jump += 1


    for i in [pos+1, pos-1]:
        if 0 <= i <= int(1e5):
            if visited[i] == -1:
                visited[i] = visited[pos] + 1
                queue.append(i)

print(visited[K])
Comments