🏷 문제
💡 코드
from collections import deque
n = int(input())
p1, p2 = map(int, input().split())
m = int(input())
graph = [ [] for _ in range(n+1) ]
visited = [ False for _ in range(n+1) ]
def bfs(p1,p2):
q = deque()
q.append([p1,0])
while q:
val,cnt = q.popleft()
if val == p2:
return cnt
if not visited[val]:
visited[val] = True
cnt += 1
for i in graph[val]:
if not visited[i]:
q.append([i,cnt])
return -1
for i in range(m):
x, y = map(int, input().split())
'''
예) 1 3 을 입력하면, 1 노드에 3을 넣어주고, 3 노드에도 1을 넣어줌
'''
graph[x].append(y)
graph[y].append(x)
print(bfs(p1,p2))
🔑