1. 문제

2. 풀이
if-elseif 또는 switch case 문을 이용해서 명령마다 따로 조건에 맞게 처리하면 되는데 나같은 경우는 if-elseif 문을 사용했음
3.코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
import java.util.StringTokenizer;
public class Q28278_boj {
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 ;
int TC = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < TC; i++) {
st = new StringTokenizer(br.readLine());
int order = Integer.parseInt(st.nextToken());
if (order == 1) {
stack.add(Integer.parseInt(st.nextToken()));
}
else if (order == 2) {
if (!stack.isEmpty()) {
bw.write(stack.pop() + "\n");
}
else {
bw.write(-1 + "\n");
}
}
else if (order == 3) {
bw.write(stack.size() + "\n");
}
else if (order == 4) {
if (stack.isEmpty()) {
bw.write(1 + "\n");
}
else {
bw.write(0 + "\n");
}
} else if (order == 5) {
if (!stack.isEmpty()) {
bw.write(stack.peek() + "\n");
}
else {
bw.write(-1 + "\n");
}
}
}
bw.flush();
}
}
4. 결과

5. 소감
스택 메서드 연습 문제라고 생각된다.
'코딩테스트' 카테고리의 다른 글
| BOJ : 11899 (0) | 2024.04.05 |
|---|---|
| BOJ : 10799 (0) | 2024.04.05 |
| BOJ : 5397 (0) | 2024.04.04 |
| 프로그래머스 : 같은 숫자는 싫어 (0) | 2024.03.19 |
| SWEA 1219 : 길찾기 (0) | 2024.03.19 |