🐣 알고리즘 삐약/💻 백준 삐약

37 삐약 : 백준 10828| 스택[바킹독 문제 풀이|스택|JAVA]

우주수첩 2023. 10. 20. 10:16
728x90

https://www.acmicpc.net/problem/10828

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

 

package BKD_0x5_Stack;
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
public class BOJ_10828 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());
        Stack<Integer> stack = new Stack<>();

        for(int i=0;i<N;i++){
            StringTokenizer st = new StringTokenizer(br.readLine());
            String command = st.nextToken();

            switch (command){
                case "push":
                    int value = Integer.parseInt(st.nextToken());
                    stack.push(value);
                    break;
                case "pop":
                    int pop_value = stack.isEmpty()?-1:stack.pop();
                    bw.write(pop_value+"\n");
                    break;
                case "size":
                    bw.write(stack.size()+"\n");
                    break;
                case "empty":
                    int isEmpty = stack.isEmpty()?1:0;
                    bw.write(isEmpty+"\n");
                    break;
                case "top":
                    int top_value = stack.isEmpty()?-1:stack.peek();
                    bw.write( top_value+"\n");
                    break;
            }


        }
        bw.flush();
        bw.close();
        br.close();
    }
}

 

 

728x90