본문 바로가기

Programmers/Level2

다리를 지나는 트럭

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를 사용해야 겠다.

'Programmers > Level2' 카테고리의 다른 글

[1차] 캐시  (0) 2021.07.24
삼각 달팽이  (0) 2021.07.24
멀쩡한 사각형  (0) 2021.07.23
주식가격  (0) 2021.07.23
위장  (0) 2021.07.23