https://www.acmicpc.net/problem/14496
문제풀이:
BFS를 이용해서 간단하게 풀 수 있는 문제였다.
import sys
from collections import deque
a, b = map(int, sys.stdin.readline().split())
N, M = map(int, sys.stdin.readline().split())
graph = [[] for _ in range(N+1)]
for _ in range(M):
n, m = map(int, sys.stdin.readline().split())
graph[n].append(m)
graph[m].append(n)
q = deque()
q.append(a)
visit = [False]*(N+1)
visit[a] = True
cnt = [-1]*(N+1)
cnt[a]=0
while (q):
n = q.popleft()
for i in graph[n]:
if (visit[i]==False):
visit[i] = True
cnt[i] = cnt[n]+1
q.append(i)
print(cnt[b])
'알고리즘💻 > 그래프(DFS&BFS)' 카테고리의 다른 글
BOJ 9372번: 상근이의 여행 (0) | 2021.08.09 |
---|---|
21316번: 스피카 (0) | 2021.08.08 |
BOJ 18352번: 특정 거리의 도시 찾기 (0) | 2021.05.25 |
BOJ 10971번: 외판원 순회 2 (0) | 2021.05.12 |
BOJ 19621번: 회의실 배정2 (0) | 2021.05.12 |