happy coding

[java] 1874. 스택 수열 본문

coding study/baekjoon

[java] 1874. 스택 수열

yeoonii 2023. 8. 16. 00:44
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();	// 출력할 결과물 저장

        Stack<Integer> stack = new Stack<>();

        int N = Integer.parseInt(br.readLine());

        int start = 0;

        // N 번 반복
        while(N-- > 0) {

            int value = Integer.parseInt(br.readLine());

            if(value > start) {
                // start + 1부터 입력받은 value 까지 push
                for(int i = start + 1; i <= value; i++) {
                    stack.push(i);
                    sb.append('+').append('\n');	// + 를 저장한다.
                }
                start = value; 	// 다음 push 할 때의 오름차순을 유지하기 위한 변수 초기화
            }

            // top에 있는 원소가 입력받은 값과 같이 않은 경우
            else if(stack.peek() != value) {
                System.out.println("NO");
                return;
            }

            stack.pop();
            sb.append('-').append('\n');

        }

        System.out.println(sb);
    }
}

'coding study > baekjoon' 카테고리의 다른 글

[java] 2745. 진법 변환  (0) 2023.08.18
[java] 25206. 너의 평점은  (0) 2023.08.18
[java] 4949. 균형잡힌 세상  (0) 2023.08.15
[java] 9012. 괄호  (0) 2023.08.15
[java] 10828. 스택  (0) 2023.08.15
Comments