Algorithm-숨박꼭질
백준 1697 : 문제링크
문제유형 :
그래프 탐색
BFS
설명
- 특정 위치까지 이동하는 최단 시간을 계산
- 이동 시간이 모두 1초로 동일, BFS를 이용하여 해결
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18from collections import deque
MAX = 100001
n, k = map(int, input().split())
array = [0] * MAX
def bfs():
q = deque([n])
while q:
now_pos = q.popleft()
if now_pos == k:
return array[now_post]
for next_pos in (now_pos - 1, now_pos + 1, now_pos * 2):
if 0 <= next_pos < MAX and not array[next_pos]:
array[next_pos] = array[now_pos] + 1
q.append(next_pos)
print(bfs())