알고리즘/BAEKJOON
BOJ 2751 : 수 정렬하기 2 with 계수 정렬 (Counting Sort)
피로물든딸기
2023. 1. 22. 19:29
반응형
https://www.acmicpc.net/problem/2751
주어지는 숫자가 -1,000,000 ~ 1,000,000이기 때문에 0 ~ 2,000,000으로 바꾼다.
그리고 a[0 ~ 2,000,000]에는 각 원소의 개수를 증가시키고,
출력할 때는 작은 값부터 원소의 개수만큼 출력하고 다음으로 넘어간다.
#include <stdio.h>
#define MINUS (1000000)
int N;
int a[1000000 + MINUS + 1000];
int main(void)
{
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
int tmp;
scanf("%d", &tmp);
a[tmp + MINUS]++;
}
for (int i = 0; i <= 1000000 + MINUS; i++)
{
while (a[i])
{
printf("%d\n", i - MINUS);
a[i]--;
}
}
return 0;
}
반응형