728x90
2022.01.14
백준 1697 숨바꼭질
# 1697 숨바꼭질
from collections import deque
N, K = map(int,input().split())
# 리스트 인덱스에 점으로 이동하는 시간을 저장하기 위해서 arr생성
# x-1이 더 빠른 경우도 있기 때문에 가장 큰 값에서 +2해준다.
if N >= K:
arr = [0] * (N+2)
else:
arr = [0] * (K+2)
def bfs(x):
queue = deque()
queue.append(x)
arr[x] = 0
if x == K: # N == K 같은 경우 0 리턴
return 0
while queue:
a = queue.popleft()
dx = [1,-1,a]
for i in range(3):
nx = a + dx[i]
if 0 <= nx < len(arr) and arr[nx] == 0:
queue.append(nx)
arr[nx] = arr[a] + 1
bfs(N)
print(arr[K])
x와 K 값이 같을 때 값을 지정해주는 것과 arr의 범위를 잘 못 정해줘서
문제가 무엇일까 하고 한참을 쳐다보았었다.
728x90
'Algorithm' 카테고리의 다른 글
백준 15651 파이썬 (0) | 2022.01.20 |
---|---|
백준 15649 파이썬 (0) | 2022.01.17 |
백준 1436 파이썬 (0) | 2022.01.13 |
백준 1158 파이썬 (큐 풀이) (0) | 2022.01.13 |
백준 7569 파이썬 (0) | 2022.01.12 |