반응형
📖 문제
📋 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuffer sb = new StringBuffer();
int N = sc.nextInt();
int seq[] = new int[N];
Stack<Integer> stack = new Stack<>();
Stack<Integer> num = new Stack<>();
for (int i = 0; i < N; i++) {
seq[i] = sc.nextInt();
}
for (int i = N; i >= 1; i--) {
num.push(i);
}
int now = 0;
while (!num.isEmpty()) {
stack.push(num.peek());
sb.append("+\n");
num.pop();
while(true) {
if(!stack.isEmpty() && stack.peek() == seq[now]) {
stack.pop();
now++;
sb.append("-\n");
}
else break;
}
}
if(stack.isEmpty()) {
System.out.println(sb);
}else {
System.out.println("NO");
}
}
}
👨🏻💻 결과
📕 풀이 방법
num: stack에 오름차순으로 수를 push해주기 위한 스택
now: 입력 수열의 인덱스
"NO" 가 나오는 입력 케이스
4
1
4
2
3
🔗 링크
https://www.acmicpc.net/problem/1874
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[JAVA] 백준 18258번 - 큐 2 (0) | 2021.12.07 |
---|---|
[JAVA] 백준 17298번 - 오큰수 (0) | 2021.12.06 |
[JAVA] 백준 2004번 - 조합 0의 개수 (0) | 2021.11.23 |
[JAVA] 백준 2981번 - 검문 (0) | 2021.11.17 |
[JAVA] 백준 11780번 - 플로이드 2 (0) | 2021.11.03 |