[JAVA] 1874 스택 수열

용해 과정

1. 입력 시퀀스를 배열에 저장하고 스택을 만듭니다.

2. 오름차순으로 푸시해야 하므로 for 문을 사용하여 1부터 시작하여 스택에 푸시하고 “+”를 내보냅니다.

입력 시퀀스의 i-1과 같으면 제거되고 “-“가 출력된다.

3. 스택에 숫자가 남아 있으면 입력 시퀀스를 생성할 수 없으므로 NO가 반환됩니다.

3-1) 예제 #2를 예로 들면, 1, 2, 5가 팝되면 순은이 오름차순으로 스택에 쌓입니다.


[JAVA] 1874 스택 수열 1

너무 깨끗해. 그러나 시퀀스에서 3과 4를 순서대로 선택하고 싶지만 스택의 특성상 위에서부터 배치하므로 4와 3을 빼내므로 3 !
= 4이므로 while 문에서 나오고 for -Instruction이 끝나서 열 수 없습니다.

암호

package org.example;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class backJoon1874 {
    public static void main(String() args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder st = new StringBuilder();
        int n = Integer.parseInt(br.readLine());
        Stack<Integer> input = new Stack<>();
        int() num = new int(n);
        for(int i= 0;i <n; i++) num(i)= Integer.parseInt(br.readLine());
        int chkAscend = 0;
        for(int i=1;i <=n; i++){
            input.add(i);
            st.append("+");
            st.append("\n");
            while(!
input.isEmpty()){ if(num(chkAscend) !
= input.peek()){ break; } else{ input.pop(); st.append("-"); st.append("\n"); chkAscend++; } } } if(input.isEmpty()){ System.out.print(st); } else System.out.println("NO"); } }