Solution
불가능한 경우: 스택의 peek()값이 큐의 peek() 값 보다 클 때
queue의 Integer값과 stk의 Integer값의 범위가 -128~127이 아닐 때, 비교 연산이 불가능하다.
→ intValue() - Returns the value of this Integer as an int.
→ stk.peek().intValue(), queue.peek().intValue()
// 1874, 스택 수열
package BOJ;
import java.io.*;
import java.util.*;
public class BOJ_1874 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
Queue<Integer> queue = new LinkedList<>();
Stack<Integer> stk = new Stack<>();
for (int i = 0; i < N; i++) {
queue.add(Integer.parseInt(br.readLine()));
}
int n = 0;
int cnt = 0;
while (cnt != N) {
stk.push(++n);
sb.append("+").append("\n");
while (!stk.isEmpty() && stk.peek().intValue() == queue.peek().intValue()) {
stk.pop();
queue.poll();
sb.append("-").append("\n");
cnt++;
}
if ((!stk.isEmpty()) && stk.peek().intValue() > queue.peek().intValue()) {
break;
}
}
if (!stk.isEmpty()) {
System.out.println("NO");
return;
}
System.out.println(sb);
}
}
https://www.acmicpc.net/problem/1874
'알고리즘 > 스택' 카테고리의 다른 글
파이썬 | 백준 | 1935 | 후위 표기식2 | 소수 둘째자리까지 출력 (0) | 2020.08.30 |
---|