
스택을 구현하는 문제이다.스택 또한 자바에서 제공한다.
import java.util.Stack;
import java.util.StringTokenizer;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Integer> stack = new Stack<>();
int N = Integer.parseInt(br.readLine());
for(int i=0;i<N;i++){
String str = br.readLine();
if(str.contains(" ")){
StringTokenizer st = new StringTokenizer(str," ");
String[] arr = new String[2];
arr[0] = st.nextToken();
arr[1] = st.nextToken();
stack.push(Integer.parseInt(arr[1]));
}else{
switch(str){
case "pop":
if(stack.empty()==true){
System.out.println(-1);
break;
}
else{
System.out.println(stack.pop());
break;
}
case "size":
System.out.println(stack.size());
break;
case "empty":
if(stack.empty()==true){
System.out.println(1);
break;
}else{
System.out.println(0);
break;
}
case "top":
if(stack.empty()==true){
System.out.println(-1);
break;
}else{
System.out.println(stack.peek());
break;
}
}
}
}
}
}
딱히 어려운건 없었다.