728x90

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

 

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

 

 

풀이)

import java.util.Scanner;
import java.util.Stack;

public class Main_BJ_1874_스택수열 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();
        int n = sc.nextInt();
        int index = 1;
        Stack<Integer> stack = new Stack<>();
        for(int i=0; i<n; i++){
            int num = sc.nextInt();
            while(stack.isEmpty() || stack.peek() < num) {
                stack.push(index++);
                sb.append("+\n");
            }
            if(stack.peek() == num){
                stack.pop();
                sb.append("-\n");
            }
            else{
                System.out.println("NO");
                System.exit(0);
            }

        }//for
        System.out.println(sb);
    }//main
}

stack의 원리만 생각한다면 간단하다.

자료구조에 대해 이해하기 좋은 문제!

728x90

'코테 > 백준' 카테고리의 다른 글

백준 11726 2xn 타일링(JAVA)  (0) 2023.01.14
백준 1107 리모컨(JAVA)  (1) 2023.01.14
백준 1920 수 찾기(JAVA)  (0) 2023.01.12
백준 2869 달팽이는 올라가고 싶다(JAVA)  (0) 2023.01.12
백준 5430 AC(JAVA)  (0) 2023.01.12

+ Recent posts