백준 자바

[백준 JAVA] 10828 스택

빙하둘리 2023. 1. 30. 03:18
728x90

해설은 낮에 적습니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));

       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 str=st.nextToken(); // 비교 대상 문자열은 따로 문자열 변수에 저장
            if(str.equals("push")) // 문자열은 동등 비교는 이렇게 써야 한다!
            {
                int k=Integer.parseInt(st.nextToken());
                //System.out.println(k);
                stack.push(k);
            }
            else if(str.equals("pop")){
                if(stack.empty())
                    System.out.println("-1");
                else
                    System.out.println(stack.pop());
            }
            else if(str.equals("top")){
                if(stack.empty())
                    System.out.println("-1");
                else
                    System.out.println(stack.peek());
            }
            else if(str.equals("size")){
                System.out.println(stack.size());
            }

            else if(str.equals("empty")){
                if(stack.empty())
                    System.out.println("1");
                else
                    System.out.println("0");
            }

        }

    }
}

참고 자료) Stack 쓰는 방법

https://coding-factory.tistory.com/601

728x90