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

이민정·2021년 4월 23일
0

프로그래머스

목록 보기
3/7

문제 링크

풀이

function solution(bridge_length,weight,truck_weights){
    var bridge = [];
    var bridge_weight = 0;
    var sec = 0; // 이동 시간
    
    for(var i=0;i<bridge_length;i++){
        bridge[i] = 0; //다리길이만큼 bridge 배열에 0 넣기
    }
    var truck = truck_weights.shift(); //지나갈 트럭 무게
    bridge.unshift(truck); // 처음 트럭 추가
    bridge.pop(); 
    bridge_weight += truck;
    sec++;
    while(truck_weights!=0){
        bridge_weight -= bridge.pop();
        truck = truck_weights.shift();
        if(bridge_weight+truck>weight){ //제한 무게 이상으로 올라가려하면
        	bridge.unshift(0); // 원래 있던 트럭 이동
            truck_weights.unshift(truck); //뺐던 트럭 다시 제자리에
            sec++;
        }else{ //진입 가능할때
        	bridge.unshift(truck);
            sec++;
            bridge_weight += truck;
        }
    }
    return sec+bridge_length; //완전히 빠져나가야하므로 bridge_length를 더해줌
}
profile
공부하자~!

0개의 댓글