백준 28278번 스택 2 JAVA

YB·2025년 12월 19일

링크텍스트

설명

스택을 알면 쉽게 풀 수 있다.
시간복잡도: O(N), 공간복잡도: O(N)

회독

  • [ x ] 1회
  • 2회
  • 3회

코드

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

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

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

        for(int i=0;i<n;i++){
            st = new StringTokenizer(br.readLine());

            int command = Integer.parseInt(st.nextToken());

            if(command==1){
                int x = Integer.parseInt(st.nextToken());
                stack.push(x);
            }else if(command==2){
                if(!stack.isEmpty()){
                    sb.append(stack.pop()).append("\n");
                }else sb.append(-1).append("\n");
            }else if(command==3){
                sb.append(stack.size()).append("\n");
            }else if(command==4){
                if(stack.isEmpty()){
                    sb.append(1).append("\n");
                }else sb.append(0).append("\n");
            }else{
                if(!stack.isEmpty()){
                    sb.append(stack.peek()).append("\n");
                }else sb.append(-1).append("\n");
            }
        }

        System.out.print(sb);
    }
}

profile
안녕하세요

0개의 댓글