https://programmers.co.kr/learn/courses/30/lessons/42583
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;
}
}
파이썬에서만 사용하던 Deque
를 처음 사용해 문제를 해결했다. while
문에서 1초씩 루프를 돌면서 맨앞에 있는 원소를 빼고 그다음 맨뒤에는 차량이 올라갈수있으면 차량무게를 넣고 못올라가면 0을 넣는 식으로 해결했다