프로그래머스 다리를 지나는 트럭 JavaScript

김건호·2021년 10월 2일
0
function solution(bridge_length, weight, truck_weights) {
    var answer = 0;
    var weightNow=0;
    var bridgeNow=[];
    var temp;
    
    for(var i=0 ; i<bridge_length; ++i) {
        bridgeNow.push(0); // 다리의 길이만큼 -> 1초에 길이 1씩 진행하므로
    }
    
    while(bridgeNow.length) {
        bridgeNow.shift(); // 다리의 한칸 공간을 만들고
        ++answer;
        
        if(truck_weights.length) { // 들어올 트럭이 있다면
            weightNow=bridgeNow.reduce((weightNow,currentValue)=> {
                return weightNow+currentValue;
            }); // 현재 다리의 무게 구하기
            if(weightNow+truck_weights[0]<=weight) { // 무게가 가능하다면
                bridgeNow.push(truck_weights.shift()); // 입장
            }
            else {
                bridgeNow.push(0); // 빠질때까지 대기
            }
        }
    }
    
    return answer;
}

reduce 메소드 문서

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글