
스택을 알면 쉽게 풀 수 있다.
시간복잡도:O(N), 공간복잡도:O(N)
- [ x ] 1회
- 2회
- 3회
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for(int i=0;i<n;i++){
st = new StringTokenizer(br.readLine());
int command = Integer.parseInt(st.nextToken());
if(command==1){
int x = Integer.parseInt(st.nextToken());
stack.push(x);
}else if(command==2){
if(!stack.isEmpty()){
sb.append(stack.pop()).append("\n");
}else sb.append(-1).append("\n");
}else if(command==3){
sb.append(stack.size()).append("\n");
}else if(command==4){
if(stack.isEmpty()){
sb.append(1).append("\n");
}else sb.append(0).append("\n");
}else{
if(!stack.isEmpty()){
sb.append(stack.peek()).append("\n");
}else sb.append(-1).append("\n");
}
}
System.out.print(sb);
}
}
