๋ฐ˜๊ฐ€์›Œ์š”! ํ—ˆ๋ธŒ์ž…๋‹ˆ๋‹ค!

์ €๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ํ˜„๋Œ€ ์—ฐ๊ธˆ์ˆ ์‚ฌ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋Š๋‚€ ์ ๋“ค๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด/baekjoon

[๋ฐฑ์ค€] ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 10989๋ฒˆ ๋ฌธ์ œํ’€์ด

mmin.h 2020. 8. 18. 10:15

https://www.acmicpc.net/problem/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๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ด๋ฌธ์ œ๋Š” N์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์ƒ๋‹นํžˆ ํฌ๋„ค์š”. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ€ต์ •๋ ฌ์ด๋‚˜ ๋ณ‘ํ•ฉ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  

๊ณ„์ˆ˜ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

๊ณ„์ˆ˜์ •๋ ฌ์„ ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด ์•„๋ž˜ ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

 

https://modernalchemist.tistory.com/31

 

[์ž๋ฃŒ๊ตฌ์กฐ] counting sort ๊ณ„์ˆ˜์ •๋ ฌ

์•ˆ๋…•ํ•˜์„ธ์š” ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์„ ํƒ, ๋ฒ„๋ธ”, ์‚ฝ์ž…, ํ€ต, ๋ณ‘ํ•ฉ, ํž™ ์ •๋ ฌ์˜ ๊ฐœ๋…์„ ๊ณต๋ถ€ํ•ด๋ณด์•˜๊ณ , ๊ฐ€์žฅ ๋นผ์šด ์ •๋ ฌ์€ O(N * log N)์ด ๋‚˜์˜ค๋Š” ํ€ต, ๋ณ‘ํ•ฉ, ํž™ ์ •๋ ฌ ์ด์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ณด๋‹ค ๋”์šฑ ๋น ๋ฅธ

modernalchemist.tistory.com

๊ฐ„๋‹จํ•œ ์†Œ์Šค์ธ๋ฐ์š” 

๋ฐฐ์—ด์— ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  

๋ฐฐ์—ด์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฐ’๋งŒํผ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

int n, m; 
int a[10001];

int main() {
	scanf("%d ", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d ", &m);
		a[m]++;
	}
	for (int i = 0; i < 10001; i++) {
		while (a[i] != 0) {
			printf("%d \n", i);
			a[i]--;
		}
	}
}