[프로그래머스] 코딩테스트 연습 - 43

krkorklo·2022년 2월 9일
0

프로그래머스

목록 보기
43/78

level 2 - 다리를 지나는 트럭

solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭 별 무게 truck_weights가 주어집니다. 이때 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 return 하도록 solution 함수를 완성하세요.

입출력 예시
bridge_length : 2
weight : 10
truck_weights : [7,4,5,6]
-> 8

function solution(bridge_length, weight, truck_weights) {
    var answer = 0;
    var time = new Array(truck_weights.length).fill(bridge_length);
    var queue = [];
    
    for (var i=0; i<truck_weights.length; i++) {
        var sum = queue.reduce((acc, val) => { return acc + truck_weights[val] }, 0);
        if (sum + truck_weights[i] <= weight) {
            queue.push(i);
        } else {
            i--;
        }
        queue = queue.filter((q) => --time[q] != 0);
        answer++;
    }
    
    return answer + time[time.length - 1] + 1;
}

0개의 댓글