인프런 커뮤니티 질문&답변

한동찬님의 프로필 이미지
한동찬

작성한 질문수

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 [Network Delay Time] (후반부)

defaultdict() 함수의 선언부가 궁금해요

해결된 질문

작성

·

211

1

다익스트라 Network Delay Time 강의에

가중치 그래프 구현을 위해 사용된

defalutdict() 함수의 내용이 없네요 어떻게 선언하셨는지 궁금합니다.

답변 1

1

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 동찬님.

 

문제에서 나온 코드 구현 부분은 조금 생략한 부분이 있습니다.

그래서 노션에 적어두었는데, 혹시 이걸 말씀하신게 맞을 까

from collections import defaultdict
import heapq


class Solution(object):
    def networkDelayTime(self, times, n, k):
        graph = defaultdict(list)
        for time in times:
            graph[time[0]].append((time[2], time[1]))

        costs = {}
        pq = []
        heapq.heappush(pq, (0, k))

        while pq:
            cur_cost, cur_node = heapq.heappop(pq)
            if cur_node not in costs:
                costs[cur_node] = cur_cost
                for cost, next_node in graph[cur_node]:
                    next_cost = cur_cost + cost
                    heapq.heappush(pq, (next_cost, next_node))

        for i in range(1, n + 1):
            if i not in costs:
                return -1

        return max(costs.values())


times = [[2, 1, 1], [2, 3, 1], [3, 4, 1]]
n = 4
k = 2

s = Solution()
print(s.networkDelayTime(times, n, k))
한동찬님의 프로필 이미지
한동찬

작성한 질문수

질문하기