public int solution(int bridge_length, int weight, int[] truck_weights) {
int answer = 0;
int weight_count =0;
int number;
Queue<Integer> queue = new LinkedList<>();
Map<Integer,Integer> map = new HashMap<>();
for(int i=0; i<truck_weights.length; i++){
weight_count += truck_weights[i];
if(!queue.isEmpty()){
number = 0;
for(int y=queue.peek(); y<i; y++){
if(weight_count > weight){
if(number == 0){
number = bridge_length-map.get(queue.peek());
weight_count -= truck_weights[queue.poll()];
answer += number;
}else{
number = bridge_length - (map.get(queue.peek())+number);
weight_count -= truck_weights[queue.poll()];
answer += number;
}
}else{
if(map.get(y) < bridge_length)
map.replace(y,map.get(y)+number+1);
else weight_count -= truck_weights[queue.poll()];
}
}
}
answer++;
queue.add(i);
map.put(i,1);
}
return answer+bridge_length;
5 5 [2, 2, 2, 2, 1, 1, 1, 1, 1] 19
1 2 [1, 1, 1] 4
1 1 [1, 1, 1] 4
4 2 [1, 1, 1, 1] 10
3 3 [1, 1, 1] 6
3 1 [1, 1, 1] 10
5 5 [1, 1, 1, 1, 1, 2, 2] 14
7 7 [1, 1, 1, 1, 1, 3, 3] 18
5 5 [1, 1, 1, 1, 1, 2, 2, 2, 2] 19
5 5 [2, 2, 2, 2, 1, 1, 1, 1, 1] 19
위 tc 다통과하고 예시 tc 다통과했는데 이제 더이상 뭐가 문제인지 찾기가 힘들어서 질문 올립니다.