점점 강해지고 있습니다.
[Java] 백준 10828번: 스택
풀이 방법
스택 구현 문제이다.
배열로 스택을 구현하였다. 리스트로 구현하는 게 더 편할 듯 싶은데 제한 시간이 0.5초라 배열이 적절하다고 생각했다.
풀이 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_10828_스택 {
static int[] stack;
static int index;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
stack = new int[N];
index = 0;
for (int i = 0; i < stack.length; i++) {
String str = br.readLine();
int res = readOperator(str);
if(res >= -1)
System.out.println(res);
}
}
private static int readOperator(String str) {
int size = str.length();
if(size >= 6) { // operator == push
stack[index] = Integer.parseInt(str.split(" ")[1]);
index++;
} else if(size == 5) { // operator == empty
return index == 0 ? 1 : 0;
} else if(size == 4) {
return index;
} else if(index == 0) {
return -1;
} else if(size == 3 && str.equals("pop")) {
int num = stack[index-1];
index--;
return num;
} else if(size == 3 && str.equals("top")) {
return stack[index-1];
}
return -2;
}
}
Thank You For Reading