[ 백준 ] 10989 / 수 정렬하기 3

5379 단어 psbojboj

# Appreciation

/*
 * Problem :: 10989 / 수 정렬하기 3
 *
 * Kind :: Sorting
 *
 * Insight
 * - 메모리 제한은 웬만하면 넉넉해서 잘 안보는 편인데
 *   틀리고 나서야 8MB 임을 알았다
 *   + (int) A[10^7] = 4*10^7B = 4*10^4KB = 4*10MB
 *     근데 주어지는 수가 모두 10,000 이하의 자연수이다
 *     # (int) A[10^4] = 4*10^4B = 4*10KB
 *       이정도면 메모리 제한내에서 충분히 가능하다!
 *
 * Point
 * - 비교를 해서 정렬할 경우 O(NlogN) 의 시간복잡도를 지니지만
 *   + 병합 정렬(Merge Sort), 힙 정렬(Heap sort), 퀵 정렬(Quick sort)
 *   수를 세서 정렬할 경우 O(N) 의 시간복잡도를 지닌다
 *   + 계수 정렬(Counting Sort)
 */

# Code

//
//  BOJ
//  ver.C++
//
//  Created by GGlifer
//
//  Open Source

#include <iostream>

using namespace std;

#define endl '\n'

// Set up : Global Variables
/* None */

// Set up : Functions Declaration
/* None */


int main()
{
    // Set up : I/O
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    // Set up : Input
    int N; cin >> N;
    int C[10000+1] = {0, };

    // Process
    for (int i=0; i<N; i++) {
        int n; cin >> n;
        C[n]++;
    }

    // Control : Output
    for (int i=1; i<=10000; i++) {
        for (int j=0; j<C[i]; j++) {
            cout << i << endl;
        }
    }
}

// Helper Functions
/* None */

좋은 웹페이지 즐겨찾기