알고리즘 풀이/백준(Boj)

백준(BOJ) 10989번 수 정렬하기 3

100win10 2019. 7. 31. 15:03

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


문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.


나의 풀이:


시간복잡도 N을 요구하고 범위가 1~10000으로 정해져 있으니 기수 정렬을 통하여 크기를 기준으로 개수를 세주면 된다.


printf와 scanf로 입력을 받아줘서 시간을 줄이자



코드 ( C++ )

#include <iostream>

using namespace std;


int mycount[10000];

int N;

int main()

{


scanf("%d", &N);

for (int i = 0; i < N; ++i)

{

int num;

scanf("%d", &num);

// 0부터 시작이므로 num-1 인덱스를 1 추가 한다.

mycount[num-1]++;

}

for (int i = 0; i < 10000; ++i) {

// 개수가 0 이상이면 개수만큼 i+1 출력 해준다.

if (mycount[i] != 0)

{

for (int j = 0; j < mycount[i]; ++j)

{

printf("%d \n", i + 1);

}

}

}

return 0;

}