import java.io.*;
class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
int[] stack = new int[count]; //배열을 count개수만큼 할당 => 키보드로부터 입력을 총 count만큼 받기 때문
int top = -1; //스택의 TOP위치, -1일 경우 스택은 비어있다.
for (int i = 0; i < count; i++) {
String[] input = br.readLine().split(" "); //공백을 기준으로 문자열을 나누어 input배열에 넣는다.
switch (input[0]) { //input[0]와 case의 문자열이 일치하는 조건문 수행
case "push": //top을 증가시키고, 스택의 top위치에 입력받은 숫자를 넣는다.
top++;
stack[top] = Integer.parseInt(input[1]);
break;
case "pop": //스택의 제일 마지막에 push된 데이터를 출력하고 top의 위치를 1 감소시킨다.
if (top == -1) {
System.out.println(-1);
break;
}
System.out.println(stack[top]);
top--;
break;
case "size": // top+1을 하여 스택의 사이즈를 알 수 있다.
System.out.println(top + 1);
break;
case "empty":
if (top == -1) {
System.out.println(1);
} else {
System.out.println(0);
}
break;
case "top": // 배열의 가장 마지막에 push된 데이터를 출력한다.
if (top == -1) {
System.out.println(-1);
break;
}
System.out.println(stack[top]);
break;
}
}
}
}
BufferedReader VS Scanner
Split
해결방법