그래프 이론으로 생각하자
보기좋게 가족을 번호로 매겨줬으니 주어진 번호에서 Q를 시작하여 이어진 친척관계를 다니며
방문한 곳에 현재 촌수+1을 해주고 도달했으면 촌수를 출력!
from collections import deque
import sys
input = sys.stdin.readline
n = int(input()) # 가족번호
s, e = map(int, input().split()) # 시작노드와 끝노드
m = int(input()) # 가족관계의 수
graph = [[] for _ in range(n+1)] # 가족 그래프
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
# 시작 기점으로 Q 시작
Q = deque([s])
visit = [0]*(n+1)
# 방문처리를 위해 시작노드를 1로 처리. 출력시 -1해서 한다
visit[s] = 1
while Q:
now = Q.popleft()
# e에 도달하면 현재 촌수-1해서 출력후 종료
if now == e:
print(visit[now]-1)
exit()
for i in graph[now]:
if visit[i]==0:
visit[i] = visit[now]+1
Q.append(i)
print(-1)