boj)1874 - 스택 수열
2020. 9. 13. 23:41ㆍPS/boj
import java.io.*;
import java.util.Stack;
public class boj_1874 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Stack<Integer> s = new Stack<>();
int n = Integer.parseInt(br.readLine()); // 1 ~ 100,000
int item = 0; // 스택에 오름차순으로 쌓일 수
while (n-- > 0) {
int x = Integer.parseInt(br.readLine());
if (x > item) { // 입력받은수가 더 크면
while (item < x) { // x까지 넣은후에
s.push(++item);
sb.append("+\n");
}
s.pop(); // 출력
sb.append("-\n");
} else { // x가 item과 같거나 작을경우
boolean found = false;
if (!s.isEmpty()) { // 스택이 비지 않았다면
int top = s.peek();
s.pop();
sb.append("-\n");
if (x == top) {
found = true;
}
}
if (!found) { // 스택의 상단값이 x보다 크면 불가능
System.out.println("NO");
return;
}
}
}
System.out.println(sb.toString());
}
}
- 실패
- 돌대가리가 틀림없다는 생각만 든다.
'PS > boj' 카테고리의 다른 글
boj)1158 - 요세푸스 문제 (0) | 2020.09.14 |
---|---|
boj)1406 - 에디터 (0) | 2020.09.14 |
boj)9012 - 괄호 (0) | 2020.09.13 |
boj)9093 - 단어 뒤집기 (0) | 2020.09.13 |
boj)10828 - 스택구현 (0) | 2020.09.13 |