주소 : https://www.acmicpc.net/problem/10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
소스 코드 :
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int input[10001]={0};
for(int i=0;i<N;i++) {
int in;
cin >> in;
input[in]+=1;
}
for (int i=1; i<10001;i++) {
for (int j=0; j<input[i];j++) {
cout << i << '\n';
}
}
}
마무리 : 위 문제는 카운팅 정렬로 풀어야하는 문제로 카운팅 정렬은 적은 양의 정수인 데이터에 따라 배열에 정렬하는 알고리즘을 말한다. 그래서 입력된 수는 배열의 수번째에서 카운팅하여 푸는 문제가 되는 것이다.
'백준 > C++' 카테고리의 다른 글
백준 1978번 : 소수 찾기 [C++] (0) | 2022.08.07 |
---|---|
백준 1436번 : 영화감독 숌 [C++] (0) | 2022.08.07 |
백준 1181번 : 단어 정렬 [C++] (0) | 2022.08.05 |
백준 2775번 : 부녀회장이 될테야 [C++] (0) | 2022.08.04 |
백준 2609번 : 최대공약수와 최소공배수 [C++] (0) | 2022.08.04 |