본문 바로가기
Baekjoon Online Judge

[BOJ] 백준 1874번: 스택 수열 (Java)

by 프로그래 밍구 2023. 4. 4.

문제링크

https://www.acmicpc.net/problem/1874

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net


나의코드

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

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        StringBuilder sb = new StringBuilder();
        
        Stack<Integer> stack = new Stack<>();
        
        int n = Integer.parseInt(br.readLine());
        
        int num = 0;
                          
        while(n-- > 0){
            int input = Integer.parseInt(br.readLine());
            
            if(num < input){
                for(int i = num + 1; i <= input; i++){
                    stack.push(i);
                    sb.append("+\n");
                }
                num = input;
            }else if(stack.peek() != input){
                System.out.print("NO");
                return;
            }
            
            stack.pop();
            sb.append("-\n");
        }
        
        System.out.print(sb);   
    }
}

 

댓글