티스토리 뷰

INF = int(1e9)
import heapq

def solution(n, edge):
    answer = 0
    distance = [INF] * (n+1)
    graph = [[] for _ in range(n+1)]

    for a,b in edge:
        graph[a].append(b)
        graph[b].append(a)

    #1 번부터 시작
    #거리 0으로
    start = 1
    distance[start] = 0
    #우선순위 큐에 첫 시작 점 넣는다
    q = []
    heapq.heappush(q,(0,start))
    #큐가 빌때까지
    while q:
        dist, x = heapq.heappop(q)
        #꺼내온것과 연결된것 탐방
        for i in graph[x]:
            #갔던곳이면 무시
            if dist > distance[i]:
                continue
            cost = dist + 1
            if distance[i] > cost:
                distance[i] = cost
                heapq.heappush(q,(cost,i))
    distance[0] = -1
    answer = distance.count(max(distance))
    return answer

'알고리즘 공부 > 고득점kit' 카테고리의 다른 글

[정렬] H-Index  (0) 2021.09.22
[정렬] k번째 수  (0) 2021.09.22
[그래프] 순위  (0) 2021.09.21
[해시]전화번호 목록  (0) 2021.09.03
[해시] 완주하지 못한 선수  (0) 2021.09.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
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
글 보관함