Baekjoon Online Judge
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 | 예제 출력 |
10 5 2 3 1 4 2 3 5 1 7 |
1 1 2 2 3 3 4 5 5 7 |
풀이
#include <iostream>
using namespace std;
// 배열
int arr[10001] = { 0 };
int main() {
// 수의 개수 N
int N;
scanf("%d", &N);
// 입력
for (int i = 0; i < N; i++) {
int c;
scanf("%d", &c);
arr[c]++;
}
// 출력
for (int i = 0; i < 10001; i++) {
if (arr[i] != 0) {
for (int j = 0; j < arr[i]; j++)
printf("%d\n", i);
}
}
return 0;
}
입력할 수 있는 숫자의 범위만큼의 배열을 만들었다. 숫자가 입력될 때마다 배열에서 해당 숫자에 해당되는 부분의 숫자가 증가한다.
'백준 > C++' 카테고리의 다른 글
[Baekjoon/C++] 소트인사이드 1427번 (0) | 2022.04.12 |
---|---|
[Baekjoon/C++] 통계학 2108번 (0) | 2022.04.12 |
[Baekjoon/C++] 수 정렬하기 2. 2751번 (0) | 2022.04.12 |
[Baekjoon/C++] 수 정렬하기 2750번 (0) | 2022.04.12 |
[Baekjoon/C++] 그룹 단어 체커 1316번 (0) | 2022.04.11 |