프로그래머스 - [Level 2] 다리를 지나는 트럭(JAVASCRIPT)

less than 1 minute read

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

카테고리 : 스택/큐

 같은 문제를 JAVA, C++에서는 queue를 활용해 먼저 풀어봤다.
 Javascript에서는 queue의 기능을 단순 배열로 대체할  있다.
 
 push() : 배열의  끝에  추가
 pop() : 배열의    제거
 
 shift() : 배열    제거
 unshift() : 배열의  앞에  추가

로직 설명 JAVA 풀이 보러가기

소스코드

function solution(bridge_length, weight, truck_weights) {
    let answer = 0;
    let queue=[];
    let total_weight=0;
    let count=0;
    
    for(let i=0;i<truck_weights.length;i++){
        let now_truck=truck_weights[i]; 
        while(true){
            if(queue.size===0){
                queue.push(now_truck);
                total_weight+=now_truck;
                count++;
                break;
            }
            else if(queue.length===bridge_length){
                total_weight-=queue.shift();
            }
            else{
                if(total_weight+now_truck<=weight){
                   total_weight+=now_truck;
                   queue.push(now_truck);
                   count++;
                   break;
                }else{
                  queue.push(0);
                  count++;
                }
            }
        }
    }
    
    return count+bridge_length;
}

Leave a comment