728x90
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main{
public static int[] queue;
public static int rear = -1; // 후단 (삽입 위치)
public static int front = -1; // 전단 (삭제 부위)
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
queue = new int[N];
rear = -1; front = -1;
StringBuilder sb = new StringBuilder();
for(int i=0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
switch (st.nextToken()) {
case "push":
push(Integer.parseInt(st.nextToken()));
break;
case "pop":
sb.append(pop()).append("\n");
break;
case "size":
sb.append(size()).append("\n");
break;
case "empty":
sb.append(empty()).append("\n");
break;
case "front":
sb.append(front()).append("\n");
break;
case "back":
sb.append(back()).append("\n");
break;
}
}
bw.write(sb.toString());
bw.flush();
bw.close();
}
// push X: 정수 X를 큐에 넣는 연산이다.
public static void push(int x){
queue[++rear] = x;
}
// pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
public static int pop() {
if(empty() != 1){
return queue[++front];
} else {return -1;}
}
// size: 큐에 들어있는 정수의 개수를 출력한다.
public static int size(){
return rear - front;
}
// empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
public static int empty(){
if (rear == front){
return 1;
} else {return 0;}
}
// front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
public static int front(){
if (empty() != 1){
return queue[front + 1];
} else {return -1;}
}
// back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
public static int back(){
if (empty() != 1){
return queue[rear];
} else {return -1;}
}
} // Main
728x90
'백준 > 코드 플러스 (알고리즘 기초 - 1)' 카테고리의 다른 글
[백준] 200 - 자료구조 1 : 덱 (!) (10866번 JAVA) (1) | 2023.01.05 |
---|---|
[백준] 200 - 자료구조 1 : 요제푸스 문제 (!) (1158번 JAVA) (0) | 2023.01.03 |
[백준] 200 - 자료구조 1 : 에디터 (!) (1406번 JAVA) (0) | 2023.01.03 |
[백준] 200 - 자료구조 1 : 스택 수열 (!) (1874번 JAVA) (0) | 2023.01.03 |
[백준] 200 - 자료구조 1 : 괄호 (9012번 JAVA) (0) | 2023.01.03 |