Home P42583. 다리를 지나는 트럭
Post
Cancel

P42583. 다리를 지나는 트럭

문제

image

제출 코드

  • 사용 알고리즘 : 자료구조

큐에 매 초마다 순서가 된 트럭이 들어올 수 있으면 넣고 아니면 -1을 넣어서, 큐의 길이가 다리 길이만큼 되었을 때마다 맨 앞의 값을 빼는 방식으로 풀었다.

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
26
import java.util.*;

class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        Queue<Integer> queue = new LinkedList<Integer>();
        int time=0, idx=0, cnt=0, remain_weight=weight, total=truck_weights.length;
        while(cnt<total){
            if(bridge_length<++time) {
                int truck = queue.poll();
                if(truck != -1){
                    remain_weight += truck;
                    cnt++;
                }
            }
            if(idx<total){
                if(truck_weights[idx]<=remain_weight) {
                    remain_weight -= truck_weights[idx];
                    queue.add(truck_weights[idx++]);
                }else{
                    queue.add(-1);
                }
            }
        }
        return time;
    }
}
This post is licensed under CC BY 4.0 by the author.