자료구조 중 LIFO구조인 스택의 기본적인 동작들을 구현하는 문제로 Stack 클래스를 사용하면 쉽게 풀 수 있는 문제였다.
자료구조 중 하나인 Stack은 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조라고 할 수 있다.
Stack<Integer> s = new Stack<>();
s.push(i); // 스택의 값 넣기
s.pop(); // 스택의 가장 위의 값 빼고 출력하기
s.size(); // 스택의 크기
s.peek(); // 스택의 가장 위의 값 조회
package data_structure;
import java.util.*;
public class stack1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack<Integer> stack = new Stack<>();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for(int i = 0; i<n; i++) {
String str = in.next();
switch(str) {
case "push":
int item = in.nextInt();
stack.push(item);
break;
case "pop":
System.out.println(stack.isEmpty() ? -1 : stack.pop());
break;
case "size":
System.out.println(stack.size());
break;
case "empty":
System.out.println(stack.isEmpty() ? 1 : 0);
break;
case "top":
System.out.println(stack.isEmpty() ? -1 : stack.peek());
break;
}
}
}
}