Skip to content

Commit 599d70d

Browse files
committed
숨바꼭질 2 풀이
1 parent c92e230 commit 599d70d

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

BAEKJOON/3Gold/숨바꼭질 2.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# 그래프 이론, 그래프 탐색, 너비 우선 탐색ㄷ
2+
# https://www.acmicpc.net/problem/12851
3+
4+
if __name__ == "__main__":
5+
from collections import deque
6+
N, K = map(int, input().split())
7+
INF = 0xFFFFFFFF
8+
SIZE = 100001
9+
10+
MAX = min(SIZE, K*2)
11+
dist = [INF] * 100001
12+
dist[N] = 0
13+
queue = deque([N])
14+
answer = []
15+
flag = False
16+
17+
while queue:
18+
X = queue.popleft()
19+
20+
if X == K:
21+
answer.append(dist[X])
22+
flag = True
23+
continue
24+
25+
X2 = X*2
26+
cost = dist[X]+1
27+
28+
if flag is True and answer[0] < cost:
29+
continue
30+
31+
if X2 <= MAX and dist[X2] >= cost:
32+
dist[X2] = cost
33+
queue.append(X2)
34+
35+
if X > 0 and dist[X-1] >= cost:
36+
dist[X-1] = cost
37+
queue.append(X-1)
38+
39+
if X <= MAX and dist[X+1] >= cost:
40+
dist[X+1] = cost
41+
queue.append(X+1)
42+
43+
print(answer[0])
44+
print(len(answer))

0 commit comments

Comments
 (0)