N

(프로그래머스 JS)다리를 지나는 트럭 본문

프로그래머스 알고리즘/2단계

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

naeunchan 2021. 3. 9. 18:27
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/42583

 

코딩테스트 연습 - 다리를 지나는 트럭

트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이

programmers.co.kr

큐를 이용한 풀이.

 

우선 큐를 다리 길이만큼 선언하여 0으로 초기화 한다.

큐가 빌 때까지 while문을 반복한다.

 

sum은 현재 다리의 올라가 있는 트럭의 무게다.

큐의 맨 앞에 있는 트럭의 무게를 빼주면서 진행.

만약 다리 위에 트럭이 올라가지 못하는 경우는 0을 큐에 넣어준다.

 

큐가 비게 되면 모든 트럭이 다리를 지나간 경우가 된다.

function solution(bridge_length, weight, truck_weights) {
    let answer = 0;
    let sum = 0;
    let queue = new Array(bridge_length);
    
    queue.fill(0);
    
    while(queue.length > 0){
        answer++;
        
        sum -= queue.shift();
        
        
        if(truck_weights.length > 0){
            if(sum + truck_weights[0] <= weight){
                let truck = truck_weights.shift();
                sum += truck;
                queue.push(truck);
            }
            else{
                queue.push(0);
            }
        }
    }
    return answer;
}
728x90
반응형