BFS로 풀면 되는 문제
import sys
from collections import deque
N, K = map(int,sys.stdin.readline().split(' '))
sis = K
pos_s = N
q = deque()
q.append(N)
time = [0 for i in range(100001)]
while q:
v = q.popleft()
if v == sis:
print(time[v])
break
for next_step in (v-1, v+1, v*2): # bfs
if 0<=next_step < 100001 and not time[next_step]:
time[next_step] = time[v]+1
q.append(next_step)
이동할 수 있는 대로 해보고 했을 때 수빈이가 동생의 위치와 같은지 판단하고 time 배열에 step을 누적해서 넣어주면 된다.
'Programming > Algorithm' 카테고리의 다른 글
백준 #10819 - 차이를 최대로 (0) | 2019.11.09 |
---|---|
백준 #13913 - 숨바꼭질4 (0) | 2019.11.09 |
백준 #1874 - 스택 수열 python (0) | 2019.10.20 |
백준 #1021 - 회전하는 큐 python (0) | 2019.10.19 |
백준 #10828 - 덱 python (0) | 2019.10.19 |