본문 바로가기
Algorithm

백준 1874번 :: 스택 수열

by DaSsom 2023. 7. 13.
import java.io.*;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt(br.readLine());
        Stack<Integer> inputStk = new Stack<>();
        int start = 0;
        while (N --> 0) {
            int value = Integer.parseInt(br.readLine());
            if (value > start) {
                for (int i = start + 1; i <= value; i++) {
                    inputStk.push(i);
                    bw.write("+" + "\n");
                }
                start = value;
            } else if (inputStk.peek() != value) {
                System.out.println("NO");
                return;
            }
            inputStk.pop();
            bw.write("-" + "\n");
        }
        bw.flush();
        bw.close();
    }
}

 

 

BufferWriter 사용 시 버퍼에 일정량이 쌓이면 비정기적으로 flush가 진행 →  출력초과

https://www.acmicpc.net/board/view/118796

 

글 읽기 - 이 문제는 BufferedWriter을 사용하면 안되나요? => 맞나보네요

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net

 

 

 

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        int N = Integer.parseInt(br.readLine());
        Stack<Integer> inputStk = new Stack<>();
        int start = 0;
        while (N-- > 0) {
            int value = Integer.parseInt(br.readLine());
            if (value > start) {
                for (int i = start + 1; i <= value; i++) {
                    inputStk.push(i);
                    sb.append("+" + "\n");
                }
                start = value;
            } else if (inputStk.peek() != value) {
                System.out.println("NO");
                return;
            }
            inputStk.pop();
            sb.append("-" + "\n");
        }
        System.out.println(sb);
    }
}

'Algorithm' 카테고리의 다른 글

백준 7662번 :: 이중 우선순위 큐  (0) 2023.07.27
백준 1918번 :: 후위 표기식  (0) 2023.07.21
백준 2750번 :: 수 정렬하기  (0) 2023.07.06
백준 1181번 :: 단어 정렬  (0) 2023.07.06
백준 10816번 :: 숫자 카드 2  (0) 2023.06.23