[Programmers] 스택/큐 - 다리를 지나는 트럭

zzenee·2022년 5월 19일
0

Algorithm&Coding-test

목록 보기
11/30
post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/42583

Problem

Code

import java.util.*;
class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        int time = 0;
        Queue<Integer> truck = new LinkedList<>();
        Queue<Integer> bridge = new LinkedList<>();
        for (int t : truck_weights) {
            truck.offer(t);
        }
        for (int i=1; i<=bridge_length; i++) {
            bridge.offer(0);
        }
        
        int sum = 0;
        while(!truck.isEmpty()) {
            int outTruck = bridge.poll();
            sum -= outTruck;
            if (sum + truck.peek() <= weight) {
                int inTruck = truck.poll();
                bridge.offer(inTruck);
                sum += inTruck;
            } else {
                bridge.offer(0);
            }
            time++;
        }
        if (bridge.size() != 0) time += bridge.size();
        return time;
    }
}

Result

profile
꾸준히

0개의 댓글