[백준](Java) 28278 - 스택2

hyeonju_jo·2025년 4월 3일

BOJ

목록 보기
4/6
post-thumbnail

문제

28278 - 스택2

문제 설명

스택(Stack)을 구현하고 주어진 명령을 수행하는 문제

문제 풀이 방법

1: 정수 X를 스택에 추가 (push)
2: 스택의 맨 위 요소를 제거하고 출력 (pop) (스택이 비어있으면 -1 출력)
3: 스택의 크기 출력 (size)
4: 스택이 비어있으면 1, 아니면 0 출력 (isEmpty)
5: 스택의 맨 위 요소 출력 (스택이 비어있으면 -1 출력) (peek)

코드

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

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

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

        int N = Integer.parseInt(br.readLine());
        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            switch (st.nextToken()) {
                case "1":
                    stack.push(st.nextToken());
                    break;
                case "2":
                    if(!stack.isEmpty()){
                        sb.append(stack.pop()).append("\n");
                    } else {
                        sb.append("-1").append("\n");
                    }
                    break;
                case "3":
                    sb.append(stack.size()).append("\n");
                    break;
                case "4":
                    if(!stack.isEmpty()){
                        sb.append("0").append("\n");
                    } else {
                        sb.append("1").append("\n");
                    }
                    break;
                case "5":
                    if(!stack.isEmpty()){
                        sb.append(stack.peek()).append("\n");
                    } else {
                        sb.append("-1").append("\n");
                    }

                    break;
            }
        }
        System.out.println(sb);
    }
}

코드 설명

  1. 스택(Stack)활용
    • Stack클래스를 사용하여 구현
    • Switch-case문으로 명령어 처리
  2. 출력 최적화
    • System.out.println()을 여러 번 호출하지 않고, StringBuilder에 저장 후 한 번에 출력
profile
소통과 발전을 중요시 하는 소프트웨어엔지니어

0개의 댓글