[プログラマー]橋を渡るトラック
6007 ワード
Link
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
Pythonでのみ使用していた
Deque
を初めて使用し、問題を解決しました.while
ドアで、1秒ごとに回転して、一番前の要素を取り除いて、それから一番後ろで、車が上がれば、車の重量を加えて、上がれないなら、0を加えて、このように解決しました.Reference
この問題について([プログラマー]橋を渡るトラック), 我々は、より多くの情報をここで見つけました https://velog.io/@kwonsc/programmers-다리를-지나는-트럭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol