반응형
public class Q_1874 {
public static void main(String[] args) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringBuilder stringBuilder = new StringBuilder();
Stack<Integer> stack = new Stack<>();
int top = 0; //스택이 들어간 마지막
try {
String sequenceLength = bufferedReader.readLine();
for(int i = 0; i < Integer.parseInt(sequenceLength); i++) {
String number = bufferedReader.readLine(); //스택에 추가되어야 하는 수
if(Integer.parseInt(number) > top) { //추가되어야 하는 수가 스택의 마지막 보다 큰 경우
while(Integer.parseInt(number) > top) {
stack.push(++top);
stringBuilder.append("+");
stringBuilder.append(System.lineSeparator());
}
stack.pop();
stringBuilder.append("-");
stringBuilder.append(System.lineSeparator());
}else { //추가되어야 하는 수가 스택의 마지막 보다 작은 경우
if(!stack.isEmpty()) {
Integer pop = stack.pop();
if(Integer.parseInt(number) == pop) {
stringBuilder.append("-");
stringBuilder.append(System.lineSeparator());
}else {
stringBuilder.setLength(0);
stringBuilder.append("NO");
break;
}
}
}
}
System.out.println(stringBuilder);
} catch (IOException e) {
e.printStackTrace();
}
}
}
반응형
'Algorithm > 백준 문제풀이' 카테고리의 다른 글
백준 1158 - 요세푸스 문제(자바 구현) (0) | 2021.10.19 |
---|---|
백준 1406 - 에디터(자바 구현) (0) | 2021.10.13 |
백준 9012 - 괄호(자바 구현) (0) | 2021.09.10 |
백준 10828 - 스택(자바 구현) (0) | 2021.06.14 |
백준 1922 - 네트워크 연결(자바 구현) (0) | 2021.05.20 |