백준/정렬

BOJ 10989 - 수 정렬하기3

누누01 2022. 11. 8. 15:43
728x90

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 


 

이번 문제는 이전 문제에 이어 counting sort만 안다면 쉽게 풀 수 있는 문제이다.

따로 설명이 필요하지 않은 쉬운 문제이니 코드를 보고 이해해보자.

 

 

 

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int number = Integer.parseInt(br.readLine());
        int[] countingSort = new int[10001];

        for (int i = 0; i < number; i++) {
            countingSort[Integer.parseInt(br.readLine())]++;
        }

        for (int i = 0; i < countingSort.length; i++) {
            while (countingSort[i] > 0) {
                sb.append(i).append("\n");
                countingSort[i]--;
            }
        }

        System.out.println(sb);
        br.close();
    }
}