반응형
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
int N = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
boolean resultBool=true;
N = Integer.parseInt(br.readLine());
Stack<Integer> stack =new Stack<Integer>();
Stack<Integer> resultStack =new Stack<Integer>();
StringBuilder sb = new StringBuilder();
for(int i=N;i>0;i--){
stack.push(i);
} //여기 까지 초기값 세팅
for(int i=0;i<N;i++) {
int init = Integer.parseInt(br.readLine());
while (!stack.isEmpty()&&stack.peek() <= init){
resultStack.push(stack.pop());
sb.append("+\n");
}
if(resultStack.peek() == init) {
sb.append("-\n");
resultStack.pop();
}else{
resultBool=false;
break;
}
}
if(resultBool)
System.out.print(sb);
else System.out.print("NO");
}
}
입력 받은 값을 스택에 넣었고 결과 스택에 추가하여 수열을 만들었습니다.
원하는 결과값을 얻을 수 없을 때는 boolean값으로 제어하여 NO를 출력하도록 하였습니다.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 백준 2438번 별 찍기 -1 Java (0) | 2021.04.15 |
---|---|
[알고리즘] 백준 1158번: 요세푸스 JAVA (0) | 2021.04.13 |
[알고리즘] 백준 9012번: 괄호 JAVA (0) | 2021.04.06 |
[알고리즘] 백준 10816번: 숫자 카드2 JAVA (0) | 2021.04.03 |
백준 10867번 : 중복 빼고 정렬하기 JAVA (0) | 2021.01.14 |
댓글