공부/백준(C++) - 2022~

백준 10989번: 수 정렬하기 3 [C++]

상연 2022. 1. 26. 22:45

목차

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

     

    10989번: 수 정렬하기 3

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

    www.acmicpc.net

    코드

    #include <iostream>
    using namespace std;
    
    int main() {
    	int n, temp;
    	scanf("%d", &n);
    	int arr[10001] = {0, };
    	
    	for(int i=0; i<n; i++)
    	{
    		scanf("%d", &temp);
    		arr[temp] += 1;
    	}
    	
    	for(int i=1; i<10001; i++)
    	{
    		for(int j=0; j<arr[i]; j++)
    		{
    			printf("%d\n", i);
    		}
    	}
    	
    	return 0;
    }

    설명

    카운팅 정렬을 사용하면 된다.

    1차원 배열에다가 숫자 세어주고 출력해주면되는데 개인적으로 좋아하는 문제이다.