Problem

Solution
class MovingAverage {
private static Queue<Integer> queue;
private static int size;
public MovingAverage(int size) {
queue = new LinkedList<>();
this.size = size;
}
public double next(int val) {
if (isFull()) {
queue.poll();
}
queue.add(val);
int sum = 0;
for (Integer value : queue) {
sum += value;
}
return (double) sum / queue.size();
}
private boolean isFull() {
return queue.size() == this.size;
}
}
Queue를 쓰는 것 뿐만 아니라, Deque를 사용해서 구현 가능했다.
Deque queue = new ArrayDeque<Integer>();

Leave a comment