ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준/JAVA] 스택 수열
    Algorithm 2024. 10. 19. 15:42

    https://www.acmicpc.net/problem/1874


    - 정답 코드

    import java.io.*;
    import java.util.*;
    
    public class Main {
        public static void main(String[] args) throws IOException {
    // => 예제 입력으로 나온 값들은 스택에서 pop()된 순서대로 나타남
    //       stack           result(예제 입력)
    //        {1}+
    //        {1,2}+
    //        {1,2,3}+
    //        {1,2,3,4}+           {4}
    //        {1,2,3}-
    //        {1,2}-               {4,3}
    //        {1,2,5}+
    //        {1,2,5,6}+
    //        {1,2,5}-             {4,3,6}
    //        {1,2,5,7}+
    //        {1,2,5,7,8}+
    //        {1,2,5,7}-           {4,3,6,8}
    //        {1,2,5}-             {4,3,6,8,7}
    //        {1,2}-               {4,3,6,8,7,5}
    //        {1}-                 {4,3,6,8,7,5,2}
    //        {}-                  {4,3,6,8,7,5,2,1}
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int N = Integer.parseInt(br.readLine()); // 8
            Stack<Integer> st = new Stack<>();
            StringBuilder sb = new StringBuilder();
    
            int start = 0;
            for(int i = 0; i < N; i++) {
                int a = Integer.parseInt(br.readLine()); // 4
                if(a > start) { // 이전 예제 입력 값과 비교
                    for(int j = start + 1; j <= a; j++) {
                        st.push(j); // {1,2,3,4}
                        sb.append("+").append("\n");
                    }
                    start = a;
                }
    
                // top에 있는 원소가 입력받은 값과 같이 않은 경우
                if(st.peek() != a) {
                    System.out.println("NO");
                    return;
                }
    
                st.pop(); // {1,2,3} 4(x)
                sb.append("-").append("\n");
    
            }
            System.out.println(sb);
        }
    }

    'Algorithm' 카테고리의 다른 글

    [백준/JAVA] 괄호의 값  (0) 2024.10.19
    [백준/JAVA] 쇠막대기  (0) 2024.10.19
    [백준/JAVA] 프린터 큐  (0) 2024.10.17
    [백준/JAVA] 후위 표기식2  (0) 2024.10.17
    [프로그래머스/JAVA] 큰 수 만들기  (0) 2024.10.16
Designed by Tistory.