728x90
반응형
BFS 문제이다. 인접 행렬, 인접 리스트가 구조가 아닌, 1차원 리스트 구조로 BFS를 구현해주면 된다.
from collections import deque
def bfs(N, K):
queue = deque([N])
while queue:
node = queue.popleft()
if node == K:
return ;
for n in [node-1, node+1, node*2]:
if (0 <= n <= 100000) and graph[n] == 0:
queue.append(n)
graph[n] = graph[node] + 1
N, K = map(int, input().split())
graph = [0]*100001
bfs(N, K)
print(graph[K])
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1926번 그림(python) (0) | 2021.03.10 |
---|---|
백준 알고리즘 18870번 좌표 압축(python) (0) | 2021.03.10 |
백준 알고리즘 2667번 단지번호붙이기(python) (0) | 2021.03.10 |
백준 알고리즘 2606번 바이러스(python) (0) | 2021.03.10 |
백준 알고리즘 2178번 미로 탐색(python) (0) | 2021.03.10 |