Muscardinus
배달 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/12978
다익스트라 사용
function solution(N, road, K) {
const r = Array.from(new Array(N + 1), () => []);
const cost = new Array(N + 1).fill(Infinity);
const pq = [];
road.forEach(([from, to, w]) => {
r[from].push({to, w});
r[to].push({to: from, w});
});
cost[1] = 0;
pq.push({to: 1, w: 0});
while (pq.length) {
pq.sort((a, b) => a.w - b.w);
const { to, w } = pq.pop();
for (let i = 0; i < r[to].length; i++) {
const next = r[to][i];
if (cost[next.to] > cost[to] + next.w) {
cost[next.to] = cost[to] + next.w;
pq.push(next);
}
}
}
return cost.filter((v) => v <= K).length;
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
2개 이하 다른 비트 (0) | 2022.04.05 |
---|---|
피로도 (0) | 2022.04.04 |
괄호 회전하기 (0) | 2022.04.03 |
빛의 경로 사이클 (0) | 2022.04.02 |
주차 요금 계산 (0) | 2022.04.01 |
Comments