
링크
코딩테스트 연습 > 스택/큐 > 다리를 지나는 트럭
풀이순서
- 큐를 사용해서 풀기
- 큐의 길이=다리의 길이
- 큐가 다 차지 않거나, 무게가 다 차지 않으면 큐 들어옴
코드
import java.util.*;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
int time = 0;
int sum = 0;
Queue<Integer> bridge = new LinkedList<>();
for(int i=0; i<truck_weights.length; i++){
int truck = truck_weights[i];
while(true){
if(bridge.isEmpty()){
bridge.add(truck);
sum += truck;
time++;
break;
}else if(bridge.size() == bridge_length){
sum -= bridge.poll();
}else{
if(sum + truck <= weight){
bridge.add(truck);
sum += truck;
time++;
break;
}else{
bridge.add(0);
time++;
}
}
}
}
return time+bridge_length;
}
}