Programmers 다리를 지나는 트럭

Updated:

Answer

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;

class Solution {

    public int solution(int bridge_length, int weight, int[] truck_weights) {
        int answer = bridge_length;
        Queue<Integer> q = new ConcurrentLinkedQueue<>();
        int sum = 0;
        
        for(int t : truck_weights){
            while(true){
                if(q.isEmpty()){
                    q.add(t);
                    sum += t;
                    answer++;
                    break;
                }else if(q.size() == bridge_length){
                    sum -= q.poll();
                }else if(sum + t > weight){
                    q.add(0);
                    answer++;
                }else{
                    q.add(t);
                    sum += t;
                    answer++;
                    break;
                }
            }
        }
        
        return answer;
    }
    
}

Categories:

Updated: