[java] 백준 - 스택 수열 1874

동훈·2024년 4월 3일

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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 start = 0;
        
        while (N --> 0){
            int value = Integer.parseInt(br.readLine());
            if (value > start){
                for (int i = start + 1 ; i<= value ; i++){
                    stack.push(i);
                    sb.append('+').append('\n');
                }
                start = value;
            } else if (stack.peek() != value) {
                System.out.println("NO");
                return;
            }

            stack.pop();
            sb.append('-').append('\n');
        }
        System.out.println(sb);

    }
}

문제를 풀면 풀수록 구현문제 말고는 바로 번뜩 답이 떠오르지 않는다.. 이렇게 다른분들이 풀이한걸 보고 공부해도 잘 하고 있는거겠지?.. 의심이 들지만 그래도 힘내자

profile
성실함 한스쿱

0개의 댓글