πŸ—οΈ Algorithm/🟩 λ°±μ€€

🟩 [λ°±μ€€] [Python] [BFS/DFS] 2644번_μ΄Œμˆ˜κ³„μ‚°

Dbswnstjd 2022. 11. 17. 04:57

문제

https://www.acmicpc.net/problem/2644

 

2644번: μ΄Œμˆ˜κ³„μ‚°

μ‚¬λžŒλ“€μ€ 1, 2, 3, …, n (1 ≤ n ≤ 100)의 μ—°μ†λœ 번호둜 각각 ν‘œμ‹œλœλ‹€. μž…λ ₯ 파일의 첫째 μ€„μ—λŠ” 전체 μ‚¬λžŒμ˜ 수 n이 주어지고, λ‘˜μ§Έ μ€„μ—λŠ” 촌수λ₯Ό 계산해야 ν•˜λŠ” μ„œλ‘œ λ‹€λ₯Έ 두 μ‚¬λžŒμ˜ λ²ˆν˜Έκ°€ μ£Όμ–΄

www.acmicpc.net

풀이

# λ°±μ€€ 2644번 문제 - μ΄Œμˆ˜κ³„μ‚°
from collections import deque
n = int(input())
x, y = map(int, input().split())
m = int(input())
graph = [[] for i in range(n+1)]
visited = [0 for _ in range(n+1)]
for i in range(m):
    a, b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)
def dfs(x):
        for i in graph[x]:
            if visited[i] == 0:
                visited[i] = visited[x] + 1
                dfs(i)
dfs(x)
print(visited[y] if visited[y] > 0 else -1 )