Coding Test/Baekjoon
[ST]백준 - 스택(10828) - Java
HN14
2021. 7. 5. 21:57
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
자료구조 중 스택(Stack) 문제를 풀어보았다.
import java.util.Scanner;
import java.util.Stack;
public class stack {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int len = sc.nextInt();
func(len);
}
public static void func(int len) {
Scanner sc = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();
String command = "";
for (int i = 0; i < len; i++) {
command = sc.nextLine();
String[] commands = command.split(" ");
switch (commands[0]) {
case "push":
stack.push(Integer.parseInt(commands[1]));
break;
case "pop":
if (stack.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(stack.peek());
stack.pop();
}
break;
case "size":
int size = stack.size();
System.out.println(size);
break;
case "empty":
if (stack.isEmpty()) {
System.out.println(1);
} else {
System.out.println(0);
}
break;
case "top":
System.out.println(stack.peek());
break;
default:
break;
}
}
}
}