-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static ArrayList<Integer> stack; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); stack = new ArrayList<>(); while(N-->0) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); switch(st.nextToken()) { case "push" : push(Integer.parseInt(st.nextToken())); break; case "pop" : sb.append(pop()).append('\n'); break; case "size" : sb.append(size()).append('\n'); break; case "empty" : sb.append(empty()).append('\n'); break; case "top" : sb.append(top()).append('\n'); break; } } System.out.println(sb); } public static void push(int N) { stack.add(N); } public static int pop() { if(stack.isEmpty()) { return -1; }else { int output = stack.get(stack.size()-1); stack.remove(stack.size()-1); return output; } } public static int size() { return stack.size(); } public static int empty() { if(stack.isEmpty()) return 1; return 0; } public static int top() { if(stack.isEmpty()) return -1; int output = stack.get(stack.size()-1); return output; } }
아래 참고 자료 블로그에서는 스택을 배열을 이용해 구현했지만, 나는 ArrayList를 사용해봤다.
참고 자료 :
https://st-lab.tistory.com/175
[백준] 10828번 : 스택 - JAVA [자바]
www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000..
st-lab.tistory.com
'백준 > 스택' 카테고리의 다른 글
15926 현욱은 괄호왕이야!! (0) 2022.05.05