본문 바로가기
Algorithm/백준풀이

[알고리즘 문제풀이] 백준 10828 스택 (JAVA코드)

by 계범 2022. 2. 27.

목차

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

     

    10828번: 스택

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

    www.acmicpc.net

    /**
     * 1. n개의 명령의 수가 들어오고,
     * 
     * 2. stack을 구현하여 명령을 처리
     * 
     * 3. pop이나 size나 empty, top은 해당하는 숫자를 출력
     * 
     */
    
    import java.io.*;
    import java.util.Stack;
    import java.util.StringTokenizer;
    
    public class Test {
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    
            Stack<Integer> stack = new Stack<>();
    
            int n = Integer.parseInt(br.readLine());
    
            StringTokenizer st;
    
            for(int i = 0; i < n; i ++){
                st= new StringTokenizer(br.readLine());
    
                String command = st.nextToken();
                
                if(command.equals("push")){
                    int num = Integer.parseInt(st.nextToken());
                    stack.push(num);
                }else if(command.equals("top")){
                    int num = (stack.isEmpty() == true) ? -1 : stack.peek();
                    bw.write(num + "\n");
                }else if(command.equals("size")){
                    bw.write(stack.size() +"\n");
                }else if(command.equals("pop")){
                    int num = (stack.isEmpty() == true) ? -1 : stack.pop();
                    bw.write(num + "\n");
                }else{
                    int num = (stack.isEmpty() == true) ? 1 : 0;
                    bw.write(num + "\n");
                }
            }
    
            bw.flush();
            bw.close();
        }
    
    }
    // stack에 데이터 추가
            // stack.push(3);
            // stack.push(6);
    
            // stack의 가장 나중에 넣은 값을 제거하고 반환
            // stack.pop();
    
            // stack에 가장 나중에 넣은 값을 반환
            // stack.peek();
    
            // stack에 담긴 내용물의 개수 반환
            // stack.size();
    
            // stack 비어있는지 체크(true, false 반환)
            // stack.isEmpty();

    댓글