풀이
import java.io.*;
import java.util.Stack;
public class S1874 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
int top = 0; //stack 가장 위에 있는 값
while (N > 0) {
int n = Integer.parseInt(br.readLine());
if (n > top) {
for (int i = top + 1; i <= n; i++) {
stack.push(i);
sb.append('+').append('\n');
}
top = n;
} else if (stack.peek() != n) {
System.out.println("NO");
return;
}
stack.pop();
sb.append('-').append('\n');
N--;
}
System.out.println(sb);
}
}
둘째 줄 부터 1이상 N이하의 정수가 중복되지 않는 수열 만들기
예외
>> 입력 수열을 만들기 위한 pop을 진행할 때 원하는 값이 stack의 가장 위에 있지 않음 "NO"
'Algorithm' 카테고리의 다른 글
자료구조 / 백준 10845 큐 (0) | 2025.04.03 |
---|---|
자료구조 / 백준 1406 에디터 (0) | 2025.04.02 |
자료구조 / 백준 9012 괄호 (0) | 2025.03.31 |
자료구조 / 백준 9093 단어 뒤집기 (0) | 2025.03.30 |
자료구조 / 백준 10828 스택 (0) | 2025.03.20 |