728x90
10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
코드
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int arr[10001] = { 0 };
int a;
for (int i = 0; i < N; i++) {
cin >> a;
arr[a] += 1;
}
for (int i = 1; i <= 10000; i++)
for (int j = 0; j < arr[i]; j++)
cout << i << "\n";
}
sort함수를 사용하여 구현하게 되면 메모리 초과가 발생한다.
따라서 arr함수를 선언하고 count를 세서 count만큼 출력하는 함수를 작서해야한다.
난이도
●○○○○
728x90
'알고리즘 > 백준' 카테고리의 다른 글
알고리즘(C++) / 백준 11652 : 카드 (0) | 2021.04.14 |
---|---|
알고리즘(C++) / 백준 11004 : K번째 수 (0) | 2021.04.14 |
알고리즘(C++) / 백준 10825 : 국영수 (0) | 2021.04.12 |
알고리즘(C++) / 백준 10814 : 나이순 정렬 (0) | 2021.04.11 |
알고리즘(C++) / 백준 11651 : 좌표 정렬하기 2 (0) | 2021.04.11 |
댓글