한쪽에서만 원소를 넣었다 뺄 수 있는 자료구조
>> 후입선출(LIFO)
주요 Method
풀이
import java.io.*;
import java.util.Stack;
public class S10828 {
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 s = br.readLine();
if (s.contains("push")) {
String split[] = s.split(" ");
stack.push(Integer.parseInt(split[1]));
} else if (s.contains("pop")) {
if (stack.empty()) {
bw.write(-1 + "\n");
}
else {
bw.write(stack.pop() + "\n");
}
} else if (s.contains("size")) {
bw.write(stack.size() + "\n");
} else if (s.contains("empty")) {
if (stack.empty()) {
bw.write(1 + "\n");
}
else {
bw.write(0 + "\n");
}
} else if (s.contains("top")) {
if (stack.empty()) {
bw.write(-1 + "\n");
}
else {
bw.write(stack.peek() + "\n");
}
}
}
bw.flush();
}
}
for문 대신 switch문을 써서 case별로 나누고
각 case의 메서드를 따로 만들어서 사용하면
>> 좀 더 직관적으로 코드를 확인할 수 있을 것으로 판단
'Algorithm' 카테고리의 다른 글
Baekjoon / 1874 스택 수열 (0) | 2025.04.01 |
---|---|
Baekjoon / 9012 괄호 (0) | 2025.03.31 |
Baekjoon / 9093 단어 뒤집기 (0) | 2025.03.30 |