https://www.acmicpc.net/problem/10828
import java.io.*;
import java.util.Stack;
// 10828번 스택
public class boj_1_10828 {
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> s = new Stack<>();
int num = Integer.parseInt(br.readLine());
for (int i = 0; i < num; i++) {
String[] input = br.readLine().split(" ");
switch (input[0]) {
case "push":
s.push(Integer.parseInt(input[1]));
break;
case "pop":
if (s.empty()) {
bw.write("-1" + "\n");
} else {
bw.write(s.pop() + "\n");
}
break;
case "size":
bw.write(s.size() + "\n");
break;
case "empty":
if (s.empty()) {
bw.write("1" + "\n");
} else {
bw.write("0" + "\n");
}
break;
case "top":
if (s.empty()) {
bw.write("-1" + "\n");
} else {
bw.write(s.peek() + "\n");
}
break;
}
}
bw.flush();
bw.close();
}
}
스택에 관한 정석적인 문제
Stack<Integer> s = new Stack<>();
s.push(i); // 스택의 값 넣기
s.pop(); // 스택의 가장 위의 값 빼고 출력하기
s.size(); // 스택의 크기
s.peek(); // 스택의 가장 위의 값 조회
위와 같이 쓸 줄 알면 된다.