May 05, 2020
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
#include<iostream>
#include<vector>
using namespace std;
int main (){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
vector<int> outarr (10001, 0);
while(N--){
int n;
cin >> n;
// 입력을 받을 때마다 배열에 카운팅 개수 늘려주기
outarr[n]++;
}
// 여기 까지 왔을 때는 각 배열의 인덱스에 해당하는 값이 몇번나왔는지 배열에 들어가 있다.
for (int i = 0 ; i < outarr.size() ; i++){
while(outarr[i] != 0){ // 카운팅이 0이 될 때까지 출력
cout << i << "\n";
outarr[i]--;
}
}
return 0;
}