ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 10828 - 스택 구현
    자료구조와 알고리즘/문제풀기 2023. 4. 4. 19:37
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class Main {
    
        public static void main(String[] args) throws Exception{
           
            BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
            MSt ms  = new MSt();
    
            int input = Integer.valueOf(s.readLine());
            String[] temp;
            int result=0;
    
            while(input-- > 0){
    
                temp = s.readLine().split(" ");
    
               switch (temp[0]){
                   case "push": ms.push(Integer.valueOf(temp[1]));
                                break;
                   case "pop" : result=ms.pop();
                                System.out.println(result);
                                break;
                   case "size" : result=ms.size();
                                 System.out.println(result);
                                 break;
                   case "empty" : result=ms.empty();
                                  System.out.println(result);
                                  break;
                   case "top"   : result=ms.top();
                                  System.out.println(result);
                                  break;
               }
    
            }
    
        }
    
    }
    class MSt {
        private int[] arr;
        private int size=0;
        MSt(){
            this(10);
        }
        MSt(int n){
            this.arr = new int[n];
        }
    
       public void push(int n){
            if(size>=arr.length) ensureSize(); //arr.length-1까지만 통과
    
            arr[size++] = n;
        }
        public int pop(){
            if(empty()==1) return -1;
            int rint = arr[size-1];
         //   if(rint == 0) return -1;
    
            arr[size-1]=0;
            size--;
    
            return rint;
        }
        public int size(){
            return this.size;
        }
       public int empty(){
            if(size==0)return 1;
            return 0;
        }
       public int top(){
            if(size ==0) return -1;
            return arr[size-1];
        }
       private void ensureSize(){
            int[] temp = new int[arr.length+6];
            System.arraycopy(arr,0,temp,0,arr.length);
            arr = temp;
        }
    }

     

    스택 자료구조를 구현하는 문제이다. 

    '자료구조와 알고리즘 > 문제풀기' 카테고리의 다른 글

    백준 10845 - 큐 구현  (0) 2023.04.05
    백준 1406 - 에디터  (0) 2023.04.05
    백준 1874 - 스택수열  (0) 2023.04.04
    백준 9012 - 괄호  (0) 2023.04.04
    백준 9093 - 단어뒤집기  (0) 2023.04.04
Designed by Tistory.