๐Ÿ—๏ธ 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 )