https://www.acmicpc.net/problem/10828

 

๐Ÿ“ ํ’€์ด : Stack

import java.io.*;
import java.util.Stack;
public class Main {
// ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
public static void main(String[] args) throws IOException {
/* [1] ์ž…๋ ฅ */
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // ๋ช…๋ น์˜ ์ˆ˜ N
/* [2] ์Šคํƒ๊ณผ StringBuilder ์ดˆ๊ธฐํ™” */
Stack<Integer> stack = new Stack<>();
StringBuilder sb = new StringBuilder();
/* [3] ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๋ฐ˜๋ณต๋ฌธ */
while (N-- > 0) {
String[] arr = br.readLine().split(" "); // ๋ช…๋ น
switch (arr[0]) {
case "push":
stack.push(Integer.parseInt(arr[1])); // ์Šคํƒ์— ์ •์ˆ˜ push
break;
case "pop":
sb.append(stack.isEmpty() ? "-1" : stack.pop()).append("\n"); // ์Šคํƒ์—์„œ popํ•˜๊ณ  ์ถœ๋ ฅ
break;
case "size":
sb.append(stack.size() + "\n"); // ์Šคํƒ์˜ ํฌ๊ธฐ ์ถœ๋ ฅ
break;
case "empty":
sb.append((stack.isEmpty() ? "1" : "0") + "\n"); // ์Šคํƒ์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ์ถœ๋ ฅ
break;
case "top":
sb.append((stack.isEmpty() ? -1 : stack.peek()) + "\n"); // ์Šคํƒ์˜ top ์š”์†Œ ์ถœ๋ ฅ
}
}
/* [4] ์ถœ๋ ฅ */
System.out.print(sb);
}
}
yewon31