유형 | 난이도 | 소요 시간 | 해결 유무 |
---|---|---|---|
• 구현 | |||
• 자료 구조 | |||
• 스택 | Silver 4 |
30분 | ✅ |
Stack
자료 구조 라이브러리 사용<aside> 💡 java.util.Stack
add()
또는 push()
: 스택에 값 추가pop()
: 스택의 (가장 위에 있는) 마지막 값을 제거함과 동시에 반환size()
: 스택의 크기 반환empty()
: 스택이 비어있으면 true
, 비어있지 않으면 false
반환peek()
: 스택의 (가장 위에 있는) 마지막 값을 반환하며, 스택에는 변화 없음
NoSuchElementException
예외 발생
</aside>// <https://www.acmicpc.net/problem/10828>
// Silver 4 스택
import java.io.*;
import java.util.Stack;
public class BOJ_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));
StringBuilder sb = new StringBuilder();
Stack<Integer> stack = new Stack<Integer>();
int num = Integer.parseInt(br.readLine());
for (int i = 0; i < num; i++) {
String[] cmd = br.readLine().split(" ");
switch (cmd[0]) {
case "push":
stack.push(Integer.parseInt(cmd[1]));
break;
case "pop":
if (stack.empty()) {
sb.append(-1);
} else {
sb.append(stack.pop());
}
sb.append("\\n");
break;
case "size":
sb.append(stack.size());
sb.append("\\n");
break;
case "empty":
sb.append(stack.empty()? 1 : 0);
sb.append("\\n");
break;
case "top":
if (stack.empty()) {
sb.append(-1);
} else {
sb.append(stack.elementAt(stack.size() - 1));
}
sb.append("\\n");
break;
}
}
bw.write(sb.toString());
bw.flush();
bw.close();
}
}