๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[๋ฐฑ์ค€] 10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 - C++ ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„/๋ฐฑ์ค€

[๋ฐฑ์ค€] 10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 - C++

.23 2021. 8. 12. 01:40
๋ฌธ์ œ

N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.


์ •๋ ฌ์„ ์ด์šฉํ•œ ๋ฌธ์ œ.

..์ธ๋ฐ ์‹œ๊ฐ„ ์ œํ•œ์ด 3์ดˆ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์ด 8MB๊ณ  ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ ๋ฒ”์œ„๊ฐ€ [1, 10000000] ์ด๋‹ค.

์ฆ‰ ๋‹ค๋ฅธ ์ •๋ ฌ ๋ฌธ์ œ์ฒ˜๋Ÿผ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋ฐฐ์—ด์— ์ž…๋ ฅ๋ฐ›์€ ๋’ค, STL ํ•จ์ˆ˜๋‚˜ ์ผ๋ฐ˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์ง€ ๋ง๋ผ๋Š” ๋œป์ด๋‹ค.

 

๋Œ€์‹  ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ [1, 10000]์ด๊ธฐ ๋•Œ๋ฌธ์— 1๋ถ€ํ„ฐ 10,000๊นŒ์ง€์˜ ์ธ๋ฑ์Šค๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜ํ˜• ๋ฒกํ„ฐ number๋ฅผ ์„ ์–ธํ•˜๊ณ  0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค์— ๋ช‡ ๋ฒˆ์ด๋‚˜ ๊ทธ ์ˆ˜๊ฐ€ ๋“ค์–ด์™”๋Š”์ง€ ์„ธ๊ณ , ์นด์šดํŠธ ๋œ ๋งŒํผ ์ถœ๋ ฅ์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€๋ฉด ๋œ๋‹ค.

 

์ฝ”๋“œ
#include <cstdio>
#include <vector>

using namespace std;

int main(void) {
    int n;
    scanf("%d", &n);
    vector<int> number(10001, 0);

    for(int i = 0; i < n; i++) {
        int temp;
        scanf("%d", &temp);
        number[temp]++;
    }

    for(int i = 1; i <= 10000; i++) {
        if(number[i] == 0) continue;
        for(int j = 0; j < number[i]; j++) {
            printf("%d\n", i);
        }
    }
    return 0;
}
Comments