본문 바로가기
알고리즘/백준

백준-2644번(촌수계산)-python3

by nyeongha 2023. 11. 24.
def dfs(graph, start, end):
    stack = [(start, [start])]
    while stack:
        (vertex, path) = stack.pop()
        if vertex == end:
            return path
        for neighbor in graph[vertex]:
            if neighbor not in path:
                stack.append((neighbor, path + [neighbor]))
    return -1

n = int(input())
start, end = 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)

result = dfs(graph, start, end)
print(len(result)-1 if result != -1 else -1)