Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_1874] 스택 수열 본문

Study/Problem Solving

[BOJ_1874] 스택 수열

monitor 2023. 10. 28. 17:26

설명


Stack에 대해서 크게 이해를 하고 있지 않아도 사실상 구현 문제에 가까운 느낌이였다. 반복문 셋팅을 잘 못하고 else 문 처리를 잘 못 해서 시간을 많이 잡아 먹은 문제다.

코드


package Data_Structure;
import java.util.*;
import java.io.*;

public class BOJ_1874 {
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        Stack<Integer> st = new Stack<>();
        int top = 0;
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < N; i++) {
            int num = sc.nextInt();
            if(top < num) {
                for (int j = top + 1; j <= num; j++) {
                    st.add(j);
                    sb.append("+" + "\n");
                }
                top = num;
            } else if(st.peek() != num){
                System.out.println("NO");
                return;
            }
            st.pop();
            sb.append("-" + "\n");

        }
        System.out.println(sb.toString());
    }
}
 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_11279] 최대 힙  (1) 2023.10.30
[BOJ_2504] 괄호의 값  (1) 2023.10.29
[BOJ_14425] 문자열 집합  (1) 2023.10.26
[BOJ_1620] 나는야 포켓몬 마스터 이다솜  (0) 2023.10.25
[BOJ_1966] 프린터 큐  (1) 2023.10.24