possibility를 true로 켜져 있게 놔두고,
별 이상이 없으면 나중에 조건문이 실행되게 함
특별한 경우가 생길 때만, switch 전환 및 break
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
// ISC - L1
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
// L2 ~
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = sc.nextInt();
}
Stack<Integer> stack = new Stack<>();
StringBuffer marker = new StringBuffer();
int num = 1;
boolean possibility = true;
for (int i = 0; i < A.length; i++) {
if (num <= A[i]) {
while (num <= A[i]) {
stack.push(num++);
marker.append("+\n");
}
stack.pop();
marker.append("-\n");
} else {
int n = stack.pop();
if (n > A[i]) {
System.out.println("NO");
possibility = false;
break;
} else {
marker.append("-\n");
}
}
}
if (possibility)
System.out.println(marker.toString());
}
}
'코테 기초' 카테고리의 다른 글
PriorityQueue 사용 (0) | 2022.12.07 |
---|---|
if 시행공간 (0) | 2022.12.06 |
marker (0) | 2022.12.06 |
StringBuffer (0) | 2022.12.06 |
숫자 타입의 경우, value를 바로 사용하거나, 추가 변수에서 그 value에 부합하면 check하는 경우 (0) | 2022.12.06 |