문제
https://www.acmicpc.net/problem/10828
풀이(8분)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < n; i++){
st = new StringTokenizer(br.readLine());
String command = st.nextToken();
switch(command){
case "push":
stack.add(Integer.parseInt(st.nextToken()));
break;
case "pop":
if(stack.isEmpty()){
sb.append(-1).append("\n");
break;
}
sb.append(stack.pop()).append("\n");
break;
case "size":
sb.append(stack.size()).append("\n");
break;
case "empty":
if(stack.isEmpty()){
sb.append(1).append("\n");
}else{
sb.append(0).append("\n");
}
break;
case "top":
if(stack.isEmpty()){
sb.append(-1).append("\n");
}else{
sb.append(stack.peek()).append("\n");
}
break;
}
}
System.out.println(sb);
}
}
queue의 peekLast() 와 같이 처음 보는 메서드가 없어서 구현하는데 어려움은 없었다.
다만, 조건을 잘 읽고 문제에서 원하는 출력을 한번에 뽑아내는 연습을 확실히 하자!!
'문제 풀이 > 백준' 카테고리의 다른 글
[백준] 22862번. 가장 긴 짝수 연속한 부분 수열 (large)(JAVA) (1) | 2025.01.23 |
---|---|
[백준] 1966번. 프린터 큐(JAVA) (0) | 2025.01.21 |
[백준] 18258번. 큐 2(JAVA) (0) | 2025.01.19 |
[백준] 1303번. 전쟁 - 전투(JAVA) (0) | 2025.01.14 |
[백준] 5567번. 결혼식(JAVA) (0) | 2025.01.14 |