티스토리 뷰

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

from collections import deque
def solution(n, edge):
    graph = [[] for _ in range(n+1)]
    answer = [0] * (n+1)
    for i in range(len(edge)):
        a = edge[i][0]
        b = edge[i][1]
        graph[a].append(b)
        graph[b].append(a)
    Q = deque()
    Q.append(1)
    answer[1] = 1
    while Q:
        node = Q.popleft()
        for g in graph[node]:
            if answer[g] == 0:
                Q.append(g)
                answer[g] = answer[node] + 1
    return answer.count(max(answer))

노드들을 최단 경로로 탐색하기 때문에 BFS를 사용하였다.

양방향 그래프이기 때문에 edge[i][0]과 edge[i][1] 모두 graph에 추가해준다.

while 문을 돌며 연결되어 있는 노드 하나씩 이어주며 전 노드의 깊이의 +1 해준다. 

answer 배열의 최댓값의 개수를 세어 return 해준다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함