[오늘의 코테연습장] - 스택 수열 1874

Mini_me·2022년 4월 26일
0

공부[코테연습장]

목록 보기
9/36

문제

코드

package backjoon;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Stack;

public class stack_1874 {
    public static void main(String[] args) throws IOException {


        Scanner in = new Scanner(System.in);
        Stack<Integer> stack = new Stack<>();
        ArrayList<String> list = new ArrayList<>();
        int N = in.nextInt();
        int start = 0;

        // N 번 반복
        for(int j=0;j<N;j++){
            int data = in.nextInt();
            if (data > start) {
               //stack에 PUSH
                for (int i = start + 1; i <= data; i++) {
                    stack.push(i);
                    list.add("+");
                }
                start = data;    // 문제 상에서 수열은 오름차순을 유지해야한다고 했으므로, start값을 data값으로 update
            }
            //top에 있는 원소가 압룍벋운 겂ㄱ허 겉운 경우 stack에서 pop
           if (stack.peek() == data) {
                stack.pop();
                list.add("-");
            }
           else {
               System.out.println("NO");
               return;
           }
        }
        for(int i=0;i< list.size();i++){
            System.out.println(list.get(i));
        }

    }
}

0개의 댓글

관련 채용 정보