import java.util.*;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
int answer = 0;
Queue<Integer> q = new LinkedList<>();
int max = 0;
for(int i = 0 ; i < truck_weights.length;i++){
while(true){
//큐가 비어 있는 경우
if(q.isEmpty()){
q.offer(truck_weights[i]);
max+=truck_weights[i];
answer++;
break;
}
//큐가 꽉찬 경우
if(q.size()==bridge_length){
max-=q.poll();
}
//큐가 다 차지 않은 경우
//무게가 초과하는 경우
if(max + truck_weights[i] >weight){
q.offer(0);
answer++;
}else{
q.offer(truck_weights[i]);
max+=truck_weights[i];
answer++;
break;
}
}
}
return answer + bridge_length;
}
}