function solution(bridge_length, weight, truck_weights) {
let answer = 0;
answer++;
// 현재 다리에 있는 트럭을 queue 로 설정
let currentBridge = [];
// 현재 다리위의 트럭무게의 합을 설정
let bridgeWeightSum = 0;
// 초기화 시킴
for(let i =0;i<bridge_length;i++){
currentBridge.push(0);
}
// 처음에는 다리위에 아무것도 없으니까 트럭한대는 무조건 들어갈 수 있음
// 대기중 트럭에서 하나 뺌
let now_truck = truck_weights.shift();
// 현재 다리위에 올리고
currentBridge.unshift(now_truck);
// 다리길이는 일정하기 때문에 pop 으로 빼서 길이를 유지시킴
currentBridge.pop();
// 트럭을 다리위에 올렸으니 무게 증가 시킴
bridgeWeightSum += now_truck;
//
while(bridgeWeightSum!==0){
answer++;
// 시간이 지났으니 트럭을 이동시킴 => currentBridge.pop()
// 만약에 트럭이 빠져나갔으면 현재 다리무게에서 뺌
bridgeWeightSum -= currentBridge.pop();
// 대기중 트럭중에서 맨 앞 트럭 + 현재 다리무게 <= 제한 하중
// 트럭을 다리위에 진입
// 무게 증가
if(truck_weights[0]+bridgeWeightSum<=weight){
now_truck = truck_weights.shift();
currentBridge.unshift(now_truck);
bridgeWeightSum+=now_truck;
}
// 무게조건이 안되면 현재있는 트럭만 다리위에서 이동
else{
currentBridge.unshift(0);
}
}
return answer;
}