문제

코드
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));
}
}
}