반응형
"NO" 판단 알고리즘 단순화, 불필요한 변수 정리
스택에 오름차순으로 입력하는 변수 save를 입력변수로 초기화,
한 번 스택에 입력한 수는 다시 넣을 수 없다.
그런데, 두번 이상 연속 pop()해서 꺼내버리면,
꺼내진 수는 더 이상 수열로 출력할 수 없으므로
한 번 pop()해서 원하는 수가 나오지 않으면 불가능한 경우로 처리한다.
package com.company;
import java.io.*;
import java.util.*;
public class BOJ1874 {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int t = sc.nextInt();
Stack<Integer> st=new Stack<Integer>();
int save=0;
while(t-->0) {
int inputSeq=sc.nextInt();
if(inputSeq>save){
for(int i=save+1;i<=inputSeq;i++){
st.push(i);
sb.append("+\n");
}
save=inputSeq;
}
if(inputSeq==st.peek()){
st.pop();
sb.append("-\n");
}
else if(inputSeq!=st.peek()){
System.out.println("NO");
return;
}
}
System.out.println(sb);
}
}
반응형
'Coding Test(Algorithms)' 카테고리의 다른 글
[JAVA] 자료구조 연습문제 - 백준 9093 (0) | 2021.06.27 |
---|---|
[JAVA] 자료구조 연습문제 - 백준 9012 (0) | 2021.06.26 |
[JAVA] 자료구조 연습문제-백준 1406 (0) | 2021.06.24 |
[JAVA] 입출력 예제 - 백준 2558 (0) | 2021.06.15 |
[JAVA] 입출력 예제 - 백준 2557 (0) | 2021.06.15 |