ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [java] 백준 알고리즘 10828번 스택 풀이
    알고리즘/백준 알고리즘 2018. 7. 11. 16:30


    스택.


    스택에 대한 설명: 스택(위키피디아)


    스택은 바닥은 깔끔하게 막혀있고, 사각형 모양의 통에 데이터를 넣는다고 생각하면 된다.


    그럼 원하는 데이터를 꺼내려면 위에서부터 꺼낼 수 밖에 없다.


    데이터를 넣을 때도 퇴적 작용처럼 위에서 하나하나씩 쌓인다.


    이를 First In, Last Out이라 한다. 처음 들어간 것이 가장 마지막에 나온다는 뜻이다.


    자바에 있는 Stack 클래스를 활용해 쉽게 구현했다.



    * 풀이 소스


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    public class Baekjoon10828{
     
        static StringTokenizer st;
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            st = new StringTokenizer(br.readLine());
            int orderCount = Integer.parseInt(st.nextToken());
            Stack<Integer> stackImpl = new Stack<>();
            
            for(int i=0; i<orderCount; i++) {
                st = new StringTokenizer(br.readLine());
                String order = st.nextToken();
                if(order.equals("push")) {
                    stackImpl.push(Integer.parseInt(st.nextToken()));
                    
                }else if(order.equals("pop")) {
                    
                    if(stackImpl.size() >0) {
                        bw.write(stackImpl.pop()+"\n");
                    }else {
                        bw.write("-1"+"\n");
                    }
                    
                }else if(order.equals("size")) {
                    bw.write(stackImpl.size()+"\n");
                    
                }else if(order.equals("empty")) {
                    
                    if(stackImpl.isEmpty()) {
                        bw.write("1"+"\n");
                    }else {
                        bw.write("0"+"\n");
                    }
                }else if(order.equals("top")) {
                    if(stackImpl.size() >0) {
                        bw.write(stackImpl.get(stackImpl.size()-1)+"\n");
                    }else {
                        bw.write("-1"+"\n");
                    }
                }
            }
            bw.flush();
            
        }
     
    }
     
    cs


Designed by Tistory.