
KeyWord : Stack (LastInFirstOut)
- 자바의 컬렉션 스택 메소드를 학습하는 것.
- 값이 있는지 없는지는 empty로 해야지 에러가 안남.
- peek==null 체크하면 에러가남.
스택이 비어 있는 경우: EmptyStackException을 발생시킵니다.
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
public 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));
StringTokenizer st;
Stack<Integer> stack = new Stack<Integer>();
int N = Integer.parseInt(br.readLine());
for(int i = 0; i<N; i++){
st = new StringTokenizer(br.readLine());
String str = st.nextToken();
if(str.equals("push")){
int X = Integer.parseInt(st.nextToken());
stack.push(X);
}else if(str.equals("top")){
if(stack.empty()){
bw.write("-1\n");
}else{
bw.write(stack.peek()+"\n");
}
}else if(str.equals("pop")){
if(stack.isEmpty()){
bw.write("-1\n");
}else{
bw.write(stack.pop()+"\n");
}
}else if(str.equals("empty")){
if(stack.empty()){
bw.write("1\n");
}else{
bw.write("0\n");
}
}else if(str.equals("size")){
bw.write(stack.size()+"\n");
}
}
bw.flush();
bw.close();
}
}