홍시홍의 프로그래밍

[백준 10989] 수 정렬하기3 본문

알고리즘 문제풀이/백준

[백준 10989] 수 정렬하기3

홍시홍 2019. 12. 18. 23:50

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

요구사항

1. 수 정렬

 

풀이

1. 이 문제는 범위가 작으므로 정렬할 필요없이, 입력 받을때 해당 배열에 ++해주어 개수만큼 출력한다

 

#include <iostream>

using namespace std;
const int MAX = 10001;
int n;
int arr[MAX];

void QuickSort(int left, int right,  int a[])
{
	int i = left;
	int j = right;
	int pivot = a[(left + right) / 2];
	int temp;
	while (i <= j)
	{
		while (a[i] < pivot)
			i++;
		while (a[j] > pivot)
			j--;
		if (i <= j)
		{
			temp = a[i];
			a[i] = a[j];
			a[j] = temp;
			i++;
			j--;
		}
	}
	if (i < right)
		QuickSort(i, right, a);
	if (j > left)
		QuickSort(left, j, a);

}
int main()
{
	ios_base::sync_with_stdio(false);
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		int x;
		cin >> x;
		arr[x]++;
	}

	//QuickSort(0, n - 1, arr);
	for (int i = 0; i <= 10000; i++)
	{
		for (int j = 0; j < arr[i]; j++)
		{
			cout << i << "\n";
		}
	}
}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

[백준 1021]회전하는 큐  (0) 2019.12.19
[백준 1427] 소트인사이드  (0) 2019.12.19
[백준 2750] 수 정렬하기  (0) 2019.12.17
[백준 2798] 블랙잭  (0) 2019.12.16
[백준 2447] 별 찍기 10  (0) 2019.12.14
Comments