Problem Solving/Programmers

[Level 2] 다리를 지나는 트럭

kmkunk 2022. 4. 6. 11:25
import java.util.*;

class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        int answer = 0;
        int sum = 0;
        Queue<Integer> queue = new LinkedList<>();
        
        for(int i=0; i<truck_weights.length; i++) {
            if(queue.isEmpty()) {
                sum += truck_weights[i];
                queue.add(truck_weights[i]);
                answer++;
                continue;
            }
            
            while(true) {
                if(queue.size()==bridge_length) { sum -= queue.poll(); }

                if(sum+truck_weights[i]>weight) {
                    queue.add(0);
                    answer++;
                } else {
                    sum += truck_weights[i];
                    queue.add(truck_weights[i]);
                    answer++;
                    break;
                }
            }
        }
        
        return answer+bridge_length;
    }
}