1. 문제
1697번: 숨바꼭질
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
2. 접근 방법
deque로 해서 x*2를 먼저 해결했다.
3. 코드
python
from collections import deque
def bfs(n):
q = deque()
q.append(n)
visited[n] = 0
while q:
x = q.popleft()
if x == K:
print(visited[K])
return
for nx in (x*2, x+1, x-1):
if 0 <= nx <= MAX:
if visited[nx] == -1 or visited[nx] > visited[x] + 1:
q.append(nx)
visited[nx] = visited[x] + 1
MAX = 100000
N, K = map(int, input().split())
visited = [-1] * (MAX+1)
bfs(N)
4. 마치며
마치며~!
'Algorithm > Python' 카테고리의 다른 글
[백준 10973] 이전 순열 (0) | 2021.05.09 |
---|---|
[백준 13913] 숨바꼭질 4 (0) | 2021.05.06 |
[백준 10972] 다음 순열 (0) | 2021.05.06 |
[백준 1476] 날짜 계산 (0) | 2021.05.05 |
[백준 15661] 링크와 스타트 (0) | 2021.05.05 |