본문 바로가기

BOJ 알고리즘 (패캠)/그래프

1697번: 숨바꼭질 (그래프, BFS) - Fastcampus

www.acmicpc.net/problem/1697

 

1697번: 숨바꼭질

수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 ��

www.acmicpc.net

from collections import deque


def bfs(start, K):
    qu = deque([(start, 0)])
    visited = [0] * 100001

    while qu:
        x, sec = qu.popleft()
        if not visited[x]:
            visited[x] = 1
            if x == K:
                return sec

            for e in (x-1, x+1, 2*x):
                if 0 <= e <= 100000:
                    qu.append((e, sec+1))


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