Skip to content

Commit 287f065

Browse files
committed
[Silver I] Title: 숨바꼭질, Time: 124 ms, Memory: 112872 KB -BaekjoonHub
1 parent 3fd3d05 commit 287f065

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# [Silver I] 숨바꼭질 - 1697
2+
3+
[문제 링크](https://www.acmicpc.net/problem/1697)
4+
5+
### 성능 요약
6+
7+
메모리: 112872 KB, 시간: 124 ms
8+
9+
### 분류
10+
11+
너비 우선 탐색, 그래프 이론, 그래프 탐색
12+
13+
### 제출 일자
14+
15+
2025년 2월 26일 19:13:04
16+
17+
### 문제 설명
18+
19+
<p>수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.</p>
20+
21+
<p>수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.</p>
22+
23+
### 입력
24+
25+
<p>첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.</p>
26+
27+
### 출력
28+
29+
<p>수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.</p>
30+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from collections import deque
2+
3+
def bfs(n):
4+
queue = deque()
5+
queue.append(n)
6+
while queue:
7+
A = queue.popleft()
8+
if A == K:
9+
return visited[K]
10+
for i in (A-1, A+1, A*2):
11+
if 0 <= i < 100001 and not visited[i]:
12+
visited[i] = visited[A] + 1
13+
queue.append(i)
14+
15+
N, K = map(int, input().split())
16+
visited = [0] * 100001
17+
print(bfs(N))

0 commit comments

Comments
 (0)