https://www.acmicpc.net/problem/15828
라우터에 입력된 순서대로 버퍼에 추가되고 삭제된다는 것을 통해 큐 자료구조를 이용해야겠다고 생각했다. 만약 버퍼에 공간이 없을 경우 입력은 무시되는데 이는 큐가 꽉 찰 경우 추가하지 않겠다는 의미와 동일하다. 입력값이 0이면 패킷 처리, -1은 종료조건, 그 외의 양수값은 패킷 처리를 의미한다.
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class b15828 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); // queue size
Queue<Integer> q = new LinkedList<>();
int check = 0; // 종료조건
while (check != -1) {
check = Integer.parseInt(br.readLine());
if (check == 0) {
q.poll();
} else if (check > 0 && q.size() < n) {
q.offer(check);
}
}
if (q.isEmpty()) {
System.out.println("empty");
} else {
while (!q.isEmpty()) {
System.out.print(q.poll() + " ");
}
}
}
}