[JAVA] 백준 10989번_Counting Sort (카운팅 정렬/ 계수정렬)

닥개·2024년 12월 15일

공부

목록 보기
11/23

수 정렬 2랑 같은 코드 넣었다가 메모리초과!
문제에 적혀있던 설명대로 counting 정렬을 공부해 풀이하였다.

Counting Sort (카운팅 정렬/ 계수정렬)
https://www.youtube.com/watch?v=Urmb0FpW6Hk
O(n)의 시간복잡도를 가지는 정렬

수 정렬 2랑 같은 코드 넣었다가 메모리초과!
설명대로 counting 정렬을 해보자!

counting sort 및 StringBuilder 출력방식을 사용하여 풀이하였다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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

        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String Ns = bf.readLine();
        int N = Integer.parseInt(Ns);

        int list[] = new int[10001];

        for(int i=0;i<N;i++) list[Integer.parseInt(bf.readLine())]++;

        bf.close();

        StringBuilder sb = new StringBuilder();
 
        for(int i = 0; i < 10001; i++){
            while(list[i] > 0){
                sb.append(i).append('\n');
                list[i]--;
            }
        }
        System.out.println(sb);
    }
    
}
profile
발바닥부터 시작하는 코딩공부

0개의 댓글