https://programmers.co.kr/learn/courses/30/lessons/42583
현재 다리에 트럭을 올릴 수 있는지 확인하고 올릴 수 있다면 큐에 넣고 무게의 합을 저장함
만약 다리의 칸은 비어있지만 무게의 초과로 올릴 수 없는 경우 무게가 0인 트럭을 올린다고 가정함.
현재 다리가 꽉 차있다면 마지막차는 목적지 바로 전이므로 다리(큐)에서 제거함.
현재 코드에서는 마지막 트럭이 다리에 올라가는 시점 까지만 계산되어 있어 마지막트럭이 다리를 지나기 위한 시간인 다리의 길이를 더함
import java.util.*;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
Queue<Integer> q = new LinkedList<>();
int time = 0;
int sum = 0;
int i=0;
while(i<truck_weights.length){
if(q.size()==bridge_length){
sum -= q.poll();
}
if(truck_weights[i]+sum<=weight&&q.size()<bridge_length){
sum += truck_weights[i];
q.add(truck_weights[i]);
i++;
}
else if(truck_weights[i]+sum>weight&&q.size()<bridge_length){
q.add(0);
}
time++;
}
return time+bridge_length;
}
}