알고리즘 풀이/백준(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;
}