Level2 - 배달

손대중·2022년 6월 28일
0

문제 설명 및 링크

https://programmers.co.kr/learn/courses/30/lessons/12978?language=javascript

나의 풀이

1번 마을부터 N번 마을까지의 최소 비용 Map 을 작성한다. (재귀 사용)

코드

모든 프로그래머스 문제 관련 코드들은 GitHub 링크 에 있음.

const beadal = (town, coast, map, road, K) => {
    if (coast <= K) {
        map[town - 1] = coast;
    }
    
    const remainLoad = road.filter(r => r[0] !== town && r[1] !== town);
    
    road
        .filter(r => r[0] === town || r[1] === town)
        .map(r => {
            const next = r[1] === town ? r[0] : r[1];
            const nextCoast = coast + r[2];
        
            if (nextCoast <= K && nextCoast < map[next - 1]) {
                beadal(next, nextCoast, map, remainLoad, K);
            }
        });
};

function solution(N, road, K) {
    var answer = 0;
    
    const map = (new Array(N)).fill(K + 1);
    
    beadal(1, 0, map, [...road], K);

    return map.filter(coast => coast <= K).length;
}

0개의 댓글