[Python] 백준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알고리즘으로 숨바꼭질를 구현했습니다. 이때, 범위를 확인해야 하는데 조건문은 앞에 있는 것부터 먼저하기 때문입니다.