프로그래밍/알고리즘 풀이
[알고리즘] 백준 1874번: 스택 수열 JAVA
방구석개발자
2021. 4. 12. 18:21
반응형
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를 출력하도록 하였습니다.
반응형