프로그래머스 / 배달 / python

맹민재·2023년 7월 4일
0

알고리즘

목록 보기
123/134
from heapq import heappop, heappush

def solution(N, road, K):
    answer = 0
    distance = [1e9] * (N+1)
    graph = [[] for _ in range(N+1)]
    for a,b,c in road:
        graph[a].append((b,c))
        graph[b].append((a,c))
    
    distance[1] = 0
    h = [(0,1)]
    
    while h:
        dis, node = heappop(h)
        
        if distance[node] < dis:
            continue
        
        for next_node, next_dis in graph[node]:
            d = dis + next_dis
            if distance[next_node] > d:
                distance[next_node] = d
                heappush(h, (d,next_node))
            
    for d in distance[1:]:
        if d <= K:
            answer += 1
    
    return answer

다익스트라 알고리즘 문제
다익스트라 알고리즘을 숙지하고 있다면 바로 풀 수 있는 문제 그 외에 특별히 생각해야할 점은 따로 없는 문제

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글