본문 바로가기
PS/Baekjoon

[Baekjoon] 10989 - 수 정렬하기 3

by 서현 SEOHYEON 2023. 5. 29.

📝 문제

 

 

 

🔑 풀이 과정

Java 언어의 시간제한이 3초, N이 천 만(10^7)이므로 속도측면에서 신경써야 하는 문제.

시간복잡도가 O(N)인 카운팅 정렬(계수 정렬) + BufferedReader 조합을 사용했다.

 

 

 

🔓 답안

import java.io.*;

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());

        //배열 생성
        int[] count = new int[10001]; //arr 배열을 이루는 수는 10000보다 작거나 같은 자연수

        //숫자 입력받기
        for(int i = 0; i < N; i++){
            count[Integer.parseInt(br.readLine())]++;
        }

        for(int i = 1; i < 10001; i++){
            for(int j = 0; j < count[i]; j++){
                bw.write(i + "\n");
            }
        }

        bw.flush();
        bw.close();

    }

}

 

 

 

🖤 알고리즘 분류

- 정렬

댓글