1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import java.util.*;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
Queue<Integer> queue = new LinkedList<Integer>();
Queue<Integer> time = new LinkedList<Integer>();
int answer = 0, pos = 0;
while (pos < truck_weights.length || queue.size() != 0) {
answer++;
// 트럭이 다리를 다 건넌 경우
if (time.size() != 0 && time.peek() == answer) {
weight += queue.poll();
time.poll();
}
// 트럭이 올라갈 수 있는 경우
if (pos < truck_weights.length && truck_weights[pos] <= weight) {
queue.add(truck_weights[pos]);
time.add(answer + bridge_length);
weight -= truck_weights[pos];
pos++;
}
}
return answer;
}
}
|
cs |
트럭이 저장될 큐와 시간이 저장될 큐를 각각 만들어서 수행하였다.
큐가 비어있는지 확인할 때 size가 아닌 isEmpty를 사용해야 겠다.