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

dev_jo·2022년 6월 4일
0

알고리즘 풀이

목록 보기
1/25
post-custom-banner

문제

다리를 지나는 트럭



문제풀이

function solution(bridge_length, weight, truck_weights) {
    
    var cnt = 1; 
    var currentWeights = []; // 다리를 지나는 트럭들의 무게
    
    currentWeights.push({"size" : truck_weights.shift(), "time": 1}); // 첫번째 트럭 삽입
    
    while (1) {
        var sizeSum = 0;
        var shiftTrue = false; // map에서 첫번째 배열 제거 여부
        currentWeights.map(v => {       
            if (v.time != bridge_length) {
                sizeSum += v.size;      
            }
            else {
               shiftTrue = !shiftTrue;
            }  
             v.time += 1; // 시간 경과
        }); 
        if (shiftTrue) currentWeights.shift();
        if (truck_weights.length != 0) {
            if (weight >= (sizeSum + truck_weights[0])) {  
                currentWeights.push({"size" : truck_weights.shift(), "time": 1}); 
            }
        }
        else {
            if (currentWeights.length == 0) {
              cnt++;
              break;  
            }
        }
        cnt++;
    }
    
    return cnt;
}


profile
To be a better developer!!
post-custom-banner

0개의 댓글