새소식

반응형
250x250
Baekjoon/Silver

[백준] 스택, 큐 - 1874_스택 수열 Java[자바]

  • -
728x90
반응형

 

이번 문제는 스택이 어떤 자료구조인지를 파악하는 문제였다.

 

스택은 Last in, First out으로 제일 먼저 넣은 값이 제일 마지막에 나오는 자료구조이다.

 

그래서 입력된 값을 기준으로 1부터 순차적으로 stack에 넣은 뒤

 

입력된 값이 stack에 들어가는 값보다 작으면 그 때 stack에서 pop() 메소드를 사용해 배열을 완성시켜 간다.

 

그리고 입력되는 값이 stack의 젤 마지막에 들어간 값보다 작으면 NO를 반환하고

 

그렇지 않으면 pop() 메소드를 사용해 배열을 마저 완성시키면 된다.

 

아래 코드를 참고하자.

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int N = Integer.parseInt(br.readLine());
        Stack<Integer> stack = new Stack();
        int[] arr = new int[N];
        for(int i = 0; i < N; i++) {
            arr[i] = Integer.parseInt(br.readLine());
        }
        int num = 1;
        for(int i = 0; i < N; i++) {
            int now = arr[i];
            if(num <= now) {
                while(num <= now) {
                    stack.push(num);
                    num++;
                    sb.append("+\n");
                }
                stack.pop();
                sb.append("-\n");
            } else {
                int su = stack.pop();
                if(su > now) {
                    sb.setLength(0);
                    sb.append("NO");
                    break;
                } else {
                    sb.append("-\n");
                }
            }
        }
        System.out.println(sb);
    }
}
728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.