99클럽 코테 스터디 12일차 TIL - (백준-스택)

Gaeng·2024년 11월 8일
post-thumbnail

스택 문제

KeyWord : Stack (LastInFirstOut)

  • 자바의 컬렉션 스택 메소드를 학습하는 것.
  • 값이 있는지 없는지는 empty로 해야지 에러가 안남.
  • peek==null 체크하면 에러가남.
    스택이 비어 있는 경우: EmptyStackException을 발생시킵니다.
import java.io.*;
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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        Stack<Integer> stack = new Stack<Integer>();

        int N = Integer.parseInt(br.readLine());

        for(int i = 0; i<N; i++){
            st = new StringTokenizer(br.readLine());
            String str = st.nextToken();
            if(str.equals("push")){
                int X = Integer.parseInt(st.nextToken());
                stack.push(X);
            }else if(str.equals("top")){
                if(stack.empty()){
                    bw.write("-1\n");
                }else{
                    bw.write(stack.peek()+"\n");
                }
            }else if(str.equals("pop")){
                if(stack.isEmpty()){
                    bw.write("-1\n");
                }else{
                    bw.write(stack.pop()+"\n");
                }
            }else if(str.equals("empty")){
                if(stack.empty()){
                    bw.write("1\n");
                }else{
                    bw.write("0\n");
                }
            }else if(str.equals("size")){
                bw.write(stack.size()+"\n");
            }
        }
        bw.flush();
        bw.close();
    }

}
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글