๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

[Java] BOJ 10828 ์Šคํƒ

by ๐ŸŠ๊ทค๐ŸŠ 2024. 7. 20.

๋ฌธ์ œ 

๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/10828

    • push X: ์ •์ˆ˜ X๋ฅผ ์Šคํƒ์— ๋„ฃ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
    • pop: ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๊ณ , ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • size: ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    • empty: ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • top: ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
  • ๋ช…๋ น์€ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€์ด๋‹ค.
  • ์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. 
  • ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€ ์•Š์€ ๋ช…๋ น์ด ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.
  • ์ถœ๋ ฅํ•ด์•ผํ•˜๋Š” ๋ช…๋ น์ด ์ฃผ์–ด์งˆ ๋•Œ๋งˆ๋‹ค, ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

์•„์ด๋””์–ด

  • Stack์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ช…๋ น์–ด์— ๋”ฐ๋ผ add, pop, size, isEmpty, peek๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์„œ ํ’€์—ˆ๋‹ค.

๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค

  • X

๋‚˜๋ฆ„ ์‰ฌ์› ๋‹ค ใ…Žใ…Ž

์ฝ”๋“œ

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

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

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

        // stack์„ ์ €์žฅํ•  stack
        Stack<Integer> s = new Stack<>();

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

            // ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ
            String order = st.nextToken();

            // ๋งŒ์•ฝ ๋ช…๋ น์–ด๊ฐ€ push๋ผ๋ฉด
            if(order.equals("push")){
                int n = Integer.parseInt(st.nextToken());

                // n์„ stack์— ์ถ”๊ฐ€
                s.add(n);
            }
            // ๋งŒ์•ฝ ๋ช…๋ น์–ด๊ฐ€ pop์ด๋ผ๋ฉด
            else if(order.equals("pop")){
                // ๋งŒ์•ฝ stack์ด ๋น„์–ด์žˆ๋‹ค๋ฉด -1 ์ถœ๋ ฅ
                if(s.isEmpty()){
                    sb.append(-1 + "\n");
                }
                // ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด
                else{
                    // ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๋‚ด๊ณ  ์ €์žฅํ•˜๊ณ  ์ถœ๋ ฅ
                    int n = s.pop();

                    sb.append(n + "\n");
                }
            }
            // ๋งŒ์•ฝ ๋ช…๋ น์–ด๊ฐ€ size๋ผ๋ฉด
            else if(order.equals("size")){
                // stack์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ €์žฅ ํ›„ ์ถœ๋ ฅ
                int n = s.size();

                sb.append(n + "\n");
            }
            // ๋งŒ์•ฝ ๋ช…๋ น์–ด๊ฐ€ empty๋ผ๋ฉด
            else if(order.equals("empty")){
                // stack์ด ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ
                if(s.isEmpty()){
                    // 1์ถœ๋ ฅ
                    sb.append(1 + "\n");
                }
                // ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด
                else{
                    // 0์ถœ๋ ฅ
                    sb.append(0 + "\n");
                }
            }
            // ๋งŒ์•ฝ ๋ช…๋ น์–ด๊ฐ€ top์ด๊ณ 
            else if(order.equals("top")){
                // stack์ด ๋น„์–ด์žˆ๋‹ค๋ฉด
                if(s.isEmpty()){
                    sb.append(-1 + "\n");
                }
                // ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด
                else{
                    // ๊ผญ๋Œ€๊ธฐ ๊ฐ’์„ ์ €์žฅ ํ›„ ์ถœ๋ ฅ
                    int n = s.peek();

                    sb.append(n + "\n");
                }
            }
        }

        System.out.println(sb);
    }
}



'์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] BOJ 18110 solved.ac  (2) 2024.07.21
[Java] BOJ 10845 ํ  (4) 2024.07.20
[Java] BOJ 10816 ์ˆซ์ž ์นด๋“œ 2  (0) 2024.07.20
[Java] BOJ 10773 ์ œ๋กœ  (0) 2024.07.20
[Java] BOJ 9012 ๊ด„ํ˜ธ  (2) 2024.07.19