ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)1874 - 스택 수열
    PS/boj 2020. 9. 13. 23:41
    import java.io.*;
    import java.util.Stack;
    
    public class boj_1874 {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringBuilder sb = new StringBuilder();
            Stack<Integer> s = new Stack<>();
    
            int n = Integer.parseInt(br.readLine()); // 1 ~ 100,000
    
            int item = 0; // 스택에 오름차순으로 쌓일 수
            while (n-- > 0) {
                int x = Integer.parseInt(br.readLine());
    
                if (x > item) { // 입력받은수가 더 크면 
                    while (item < x) { // x까지 넣은후에 
                        s.push(++item);
                        sb.append("+\n");
                    }
                    s.pop(); // 출력 
                    sb.append("-\n");
                } else { // x가 item과 같거나 작을경우 
                    boolean found = false;
                    if (!s.isEmpty()) { // 스택이 비지 않았다면
                        int top = s.peek();
                        s.pop();
                        sb.append("-\n");
    
                        if (x == top) { 
                            found = true;
                        }
                    }
    
                    if (!found) { // 스택의 상단값이 x보다 크면 불가능
                        System.out.println("NO");
                        return;
                    }
                }
            }
    
            System.out.println(sb.toString());
        }
    }
    

    - 실패

    - 돌대가리가 틀림없다는 생각만 든다.

     

    'PS > boj' 카테고리의 다른 글

    boj)1158 - 요세푸스 문제  (0) 2020.09.14
    boj)1406 - 에디터  (0) 2020.09.14
    boj)9012 - 괄호  (0) 2020.09.13
    boj)9093 - 단어 뒤집기  (0) 2020.09.13
    boj)10828 - 스택구현  (0) 2020.09.13
킹수빈닷컴