[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개의 댓글

관련 채용 정보