honey_pot

[Python] 가장 먼 노드 본문

문제 풀이

[Python] 가장 먼 노드

_tera_ 2022. 9. 28. 21:42

https://school.programmers.co.kr/learn/courses/30/lessons/49189


큐를 이용한 bfs 문제

q에 있는 노드들을 방문한 뒤 가장 마지막에 남는 노드들 즉, 1에서 가장 먼 리프노드들을 출력한다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from collections import defaultdict, deque
def solution(n, edge):
    visited = [-1]*n
    dic = defaultdict(list)
    for e in edge:
        dic[e[0]].append(e[1])
        dic[e[1]].append(e[0])
    q = deque()
    q.append(1)
    visited[0= 1
    while q:
        nodes = len(q)
        for _ in range(nodes):
            cur = q.popleft()
            for c in dic[cur]:
                if visited[c-1== -1:
                    visited[c-1= 0
                    q.append(c)
    return nodes
cs

'문제 풀이' 카테고리의 다른 글

[python] 입국심사  (0) 2022.09.30
[python] 디스크 컨트롤러  (0) 2022.09.29
[Python] 섬 연결하기  (0) 2022.09.28
[Python] 보석 쇼핑  (1) 2022.09.23
[Python] 불량 사용자  (0) 2022.09.23
Comments