[Python] 백준1697 숨바꼭질

[Python] 백준1697 숨바꼭질

백준1697 숨바꼭질 링크

문제

문제

예제 입력

예제


코드

from collections import deque 
n, k= map(int, input().split())
arr = [ 0 ] * (100001)

def BFS(n) :
    dq = deque()
    dq.append(n)

    while dq :
        num = dq.popleft()

        if num == k:
            return

        for x in (num - 1, num + 1, 2*num):
            if 0 <= x <= 100000 and not arr[x]:
                arr[x] = arr[num] + 1
                dq.append(x)

BFS(n)
print(arr[k])

설명

파이썬을 통해서 사용자로부터 입력받아 자료형 list를 사용하여 BFS알고리즘으로 숨바꼭질를 구현했습니다. 이때, 범위를 확인해야 하는데 조건문은 앞에 있는 것부터 먼저하기 때문입니다.


결과

결과


© 2022. All rights reserved. 신동민의 블로그