[programmers] 다리를 지나는 트럭

KwonSC·2022년 3월 24일
0

programmers - Java

목록 보기
7/17
post-thumbnail

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


Code

import java.util.*;

class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        Deque<Integer> deque = new ArrayDeque<>();
        for(int i = 0; i < bridge_length; i++) {
            deque.add(0);
        }
        int idx = 0, sum = 0, answer = 0;
        while(deque.size() > 0) {
            answer++;
            int first = deque.removeFirst();
            sum -= first;
            if (idx < truck_weights.length) {
                if (sum + truck_weights[idx] <= weight) {
                sum += truck_weights[idx];
                deque.addLast(truck_weights[idx]);
                idx++;
                }
                else {
                    deque.addLast(0);
                }
            }
        }
        return answer;
    }
}

Solution

파이썬에서만 사용하던 Deque를 처음 사용해 문제를 해결했다. while문에서 1초씩 루프를 돌면서 맨앞에 있는 원소를 빼고 그다음 맨뒤에는 차량이 올라갈수있으면 차량무게를 넣고 못올라가면 0을 넣는 식으로 해결했다

0개의 댓글