Algorithm/백준

백준 1874 (스택 수열) - Java

leecom116 2023. 12. 2. 19:37
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));

        int n = Integer.parseInt(br.readLine());
        
        // stack 안에 넣을 동적 요소 
        int start = 0;
        StringBuilder sb = new StringBuilder();
        Stack<Integer> stack = new Stack<>();

        for(int i=0; i<n; i++) {
            int num = Integer.parseInt(br.readLine());

		// 현재 입력받은 수열 원소보다 작을 경우 push 연산 반복
            while(start < num) {
                stack.push(++start);
                sb.append("+\n");
            }
		// stack의 제일 마지막 원소와 현재 수열 원소가 같을 경우 pop 연산
            if(stack.pop() == num) {
                sb.append("-\n");
            } else {
            	// 수열이 만들어 질 수 없는 경우
                System.out.println("NO");
                return;
            }

        }
        System.out.println(sb);
    }
}