Algorithm_PYTHON
[백준_파이썬]1697번_숨바꼭질
by 코리니덕
2021. 8. 24.
# 빠른 시간 안에 움직여야 하니까 bfs사용
from collections import deque
MAX = 100001
n, k = map(int, input().split())
# 위치 입력표시할 배열(최대가 100000니까 +1로 잡아주기)
maps = [0] * MAX
q = deque()
# 수빈이의 시작점을 큐에 넣기
q.append(n)
while q:
x = q.popleft()
# 수빈이의 위치와 동생의 위치가 같으면 그때의 원소값 출력
if x == k:
print(maps[x])
break
# 이동할 위치 따져보기
for nx in (x-1, x+1, x*2): # 4, 6, 10 => nx
# 만약 ,nx가 수직선 상에 있는 좌표안에 있고,
# 그곳에 아무 표시가 없다면
if 0 <= nx < MAX and maps[nx] == 0:
# if 0 <= nx < MAX and not maps[nx] :
maps[nx] = maps[x] +1 # 전 좌표에서 1초 더하기
# 즉, maps[4, 6, 10] = 0 + 1
q.append(nx)
print(maps)