새소식

Baekjoon

[Programmers] 다리를 지나가는 트럭 문제 - (javascript)

  • -
728x90

 

문제 이름 :  다리를 지나가는 트럭

 

<<< 문제 내용 >>>


 


 

function solution(bridge_length, weight, truck_weights) {
    let answer = 0;
    let bridge = new Array(bridge_length).fill(0);
    let allTruckLen = truck_weights.length;
    let pulledTruck = 0;
    
    while(pulledTruck < allTruckLen){
        let curPulledIdx = bridge.shift();

        if(curPulledIdx !== 0){ // 꺼낸 인덱스가 트럭이라면
            weight += curPulledIdx;
            pulledTruck++;
        }
        
        if(truck_weights.length && weight>=truck_weights[0]){ // 트럭이 지나갈 무게가 남았다면
            let curTruck = truck_weights.shift();
            bridge.push(curTruck);
            weight -= curTruck;
        }else{
            bridge.push(0);
        }
        
        answer++;
    }
    return answer;
}

* 다리를 만들고, 다리에서 나온 idx를 파악해서 트럭이라면 다시 무게를 더해주고, 꺼내진 트럭 개수를 늘려줍니다.

 

꺼내진 트럭 개수가 전체 트럭 개수와 같아질때까지 반복하면서, 트럭이 꺼내지자마자 들어갈 수 있을 수 있으니 else if와 같이 묶지 않고, 다른 조건으로 체크하면 됩니다.

 

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.