728x90

간단한 Graph bfs 문제.

트리 구성이 아직 미숙하다.

 

N = int(input())
a, b = map(int, input().split())
M = int(input())
tree = [[] for x in range(N+1)]

for i in range(M):
    p, c = map(int, input().split())
    tree[c].append(p)
    tree[p].append(c)

res = -1

from collections import deque

def bfs(start):
    global res

    q = deque([(start, 0)])
    visited = [0]*(N+1)
    while q:
        cur, val = q.popleft()
        if cur == b:
            res = val
            return
        for i in tree[cur]:
            if not visited[i]:
                q.append((i, val+1))
                visited[i] = 1
bfs(a)
print(res)

'PS > Python' 카테고리의 다른 글

[Programmers] 숫자 문자열과 영단어  (0) 2021.09.18
[Programmers] 모의고사  (0) 2021.09.18
[BOJ_Python] 7569. 토마토  (0) 2021.04.17
[BOJ_Python] 1991. 트리 순회  (0) 2021.04.08
[BOJ_Python] 14499. 주사위 굴리기  (0) 2021.04.05
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기