https://www.acmicpc.net/problem/1697
1697번: 숨바꼭질
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
문제
내 풀이
import sys
from collections import deque
input = sys.stdin.readline
def bfs():
while que:
now = que.popleft()
if now == sister:
print(record[now])
exit()
if 0 <= now+1 < N:
if visited[now+1] == 0:
visited[now+1] = 1
que.append(int(now+1))
record[now+1] = record[now] + 1
if 0 <= now-1 < N:
if visited[now-1] == 0:
visited[now-1] = 1
que.append(int(now-1))
record[now-1] = record[now] + 1
if 0 <= now*2 < N:
if visited[now*2] == 0:
visited[now*2] = 1
que.append(int(now*2))
record[now*2] = record[now] + 1
N = 100001
visited = [0]*N
record = [0]*N
subin, sister = map(int, input().split())
que = deque([subin])
visited[subin] = 1
bfs()
해설
단순한 구현 문제.
'sw사관학교 정글 2기 > 03 DFS, BFS, 위상정렬' 카테고리의 다른 글
[BFS] 백준 섬의 개수 2588번 with Python3 (0) | 2021.08.25 |
---|---|
[BFS] 백준 단지번호붙이기 2667번 with Python3 (0) | 2021.08.25 |
[위상정렬] 백준 작업 2056번 with Python3 ★★★ (0) | 2021.08.25 |
[BFS] 백준 숨바꼭질 1697번 with Python3 (0) | 2021.08.24 |
[위상정렬] 백준 장난감 찾기 2637번 with Python3 ★★ (0) | 2021.08.24 |
댓글