[プログラマー](Python Python Python Python Python Python Python Python Python)の配信


👉 配达する



マイコード

from collections import defaultdict
import heapq as hq


def solution(N, road, K):
    dic = defaultdict(set)
    gp = [float("inf")] * (N + 1)
    for s, e, w in road:
        dic[s].add((e, w))
        dic[e].add((s, w))

    que = []
    hq.heappush(que, (0, 1))
    gp[1] = 0
    while que:
        cur_dis, node = hq.heappop(que)
        for e, w in dic[node]:
            if gp[e] > cur_dis + w:
                gp[e] = cur_dis + w
                hq.heappush(que, (gp[e], e))

    return len(list(filter(lambda x: x <= K, gp)))

チップ

  • ドエストラアルゴリズムに忠実な問題