코딩/백준 문제 (브론즈)
[백준/10989/C언어] 수 정렬하기 3 _ 풀이
룻밤
2023. 9. 11. 19:37
https://www.acmicpc.net/problem/10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
풀이
#include <stdio.h>
int main(void){
int N;
scanf("%d", &N);
int counting[10001]={};
for(int i=0; i<N; i++){
int input;
scanf("%d", &input);
// input인덱스의 값 +1 (=인덱스의개수)
counting[input]++;
}
for(int i=0; i<10001; i++){
// counting[i] 횟수만큼 i 출력
for(int j=0; j<counting[i]; j++){
printf("%d\n", i);
}
}
}
계수정렬(counting sort)를 통해
각 입력과 같은 수의 인덱스에 그 인덱스의 반복횟수를 저장하는 배열을 만들고
출력시에 반복 횟수만큼 출력 가능하다