๋ฐฑ์๋ ์ค์ฟจ์์ ํ๋ฒ ํ์๋, ์คํ ๊ตฌํํ๊ธฐ ๋ฌธ์ ์๋ค.
์คํ์ด ์ด๋ค ๋ฐ์ดํฐ ๊ตฌ์กฐ์ธ์ง ์๋ฉด, ๋ ์ฝ๊ฒ ํ ์ ์์ง๋ง, ๋ชฐ๋ผ๋ ์ ์ค๋ช ์ ๋ณด๊ณ ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋งค์๋๋ฅผ ๋ง๋ค๋ฉด ์ถฉ๋ถํ ํด๊ฒฐํ ์ ์๋ค.
๋จผ์ , ๋ช ๋ น์ด ์๊ฐ 10000๊ฐ ์ฃผ์ด์ง๋ฏ๋ก, ๋ชจ๋ ๋ช ๋ น์ด๊ฐ push์ธ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ ๊ณต๊ฐ์ 10000๊ฐ๋ฉด ์ถฉ๋ถํ๊ธฐ ๋๋ฌธ์, ํด๋์ค ๋ณ์๋ก index = -1, 10001 ํฌ๊ธฐ์ int ๋ฐฐ์ด์ ์์ฑํ์๋ค.
๊ทธ๋ฆฌ๊ณ 5๊ฐ์ static ๋ฉ์๋๋ฅผ ๊ตฌํํ์๋ค.
push ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ๋งํ๋ฉด ๋๋ฏ๋ก, index๋ฅผ ์ ์์ฐ์ฐ์๋ก 1 ์ฆ๊ฐ์์ผ์ค ํ ๋ฐฐ์ด์ ์ ๋ ฅํ์๋ค.
pop์ index๊ฐ -1์ ๊ฐ๋ฆฌํค๊ณ ์์ผ๋ฉด ์คํ์ด ๋น์ด์๋ค๋ ์๋ฏธ์ด๋ฏ๋ก ์กฐ๊ฑด์์ ํ์ฉํด index๊ฐ -1์ธ ๊ฒฝ์ฐ -1์ ์ถ๋ ฅํ๊ฒ ํ์๊ณ , ๊ทธ ์ธ๋, ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๊ณ index ๋ฅผ ํ์์ฐ์ฐ์๋ก 1 ๊ฐ์์์ผฐ๋ค.
pop ๋ฉ์๋์์, ๊ตณ์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๊ณ 0์ผ๋ก ๋ง๋ค์ด์ฃผ์ง ์์๋, ์ธ๋ฑ์ค ๊ฐ์ ํตํด์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋ค ๊ตฌํํ ์ ์๋ค!
size ๋ฉ์๋๋, index๊ฐ์ +1 ์ ํด์ฃผ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฉ์๋์ด๊ณ
empty์ top ๋ฉ์๋ ์ญ์ index๊ฐ์ด -1 ์ธ ๊ฒฝ์ฐ์ ์๋ ๊ฒฝ์ฐ๋ก ๋๋์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด ๋๋ค!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int index = -1;
static int[] arr = new int[10001];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.valueOf(br.readLine());
for (int i = 0; i < N; i++) {
String[] input = br.readLine().split(" ");
if (input[0].equals("push")) {
push(Integer.valueOf(input[1]));
} else if (input[0].equals("top")) {
top();
} else if (input[0].equals("size")) {
size();
} else if (input[0].equals("empty")) {
empty();
} else if (input[0].equals("pop")) {
pop();
}
}
}
static void push(int input) {
arr[++index] = input;
}
static void pop() {
if (index == -1) {
System.out.println(-1);
} else {
System.out.println(arr[index--]);
}
}
static void size() {
System.out.println(index + 1);
}
static void empty() {
if (index == -1) {
System.out.println(1);
} else {
System.out.println(0);
}
}
static void top() {
if (index == -1) {
System.out.println(-1);
} else {
System.out.println(arr[index]);
}
}
}