https://www.acmicpc.net/problem/1697
문제
내 풀이
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 |
댓글