BEAKJOON

백준(10989번 수 정렬하기 3)풀이 C++

Shin_jisoo 2021. 1. 17. 23:48
728x90

www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

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

www.acmicpc.net

1) 주석 없는 VERSION

#include <iostream>
#include <cmath>
#include <stdio.h>
#include <utility>
#include <string>
#include <algorithm>

using namespace std;

int main() {

	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	cin >> n;

	int array[10001] = { 0, };

	for (int i = 0;i < n;i++) {
		int a;
		cin >> a;
		array[a] += 1;
	}

	for (int i = 1;i <= 10000;i++) {
		for (int j = 0;j < array[i];j++) {
			cout << i << "\n";
		}
	}
}

 

2) 주석 있는 VERSION

#include <iostream>
#include <cmath>
#include <stdio.h>
#include <utility>
#include <string>
#include <algorithm>

using namespace std;

int main() {

	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	cin >> n;

	int array[10001] = { 0, };

	// 테스트 개수만큼 반복
	// 해당 숫자의 배열 인덱스에 숫자 카운트 +1
	for (int i = 0;i < n;i++) {
		int a;
		cin >> a;
		array[a] += 1;
	}

	// 배열 인덱스에 저장되어 있는 카운트 수만큼 해당 숫자 출력
	for (int i = 1;i <= 10000;i++) {
		for (int j = 0;j < array[i];j++) {
			cout << i << "\n";
		}
	}
}