‡ CODING TEST STUDY ‡/º 백준

[백준 10989번 C++] 수 정렬하기 3

Trudy | 송연 2023. 9. 28. 00:53

10989번: 수 정렬하기 3 (acmicpc.net)

 

10989번: 수 정렬하기 3

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

www.acmicpc.net


정답률이 낮은 데, 기본적인 정렬 문제고 주어진 범위가 넓길래 시간 초과나 메모리 문제로 다르게 풀어야겠거니 했다

 

[백준(BOJ)] 10989번 : 수 정렬하기 3 - C++[CPP] (tistory.com)

 

[백준(BOJ)] 10989번 : 수 정렬하기 3 - C++[CPP]

www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmic

tooo1.tistory.com

위 글에서 접근 방식이 잘 설명되어 있었다

 

맨날 써야지 하고 안쓰는 마법의 시간 초과 해결 코드 

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

 위 링크에서와 똑같이 코드를 짰는 데

정렬 문제를 이렇게 풀 수 있다는 것에 너무 놀랐다

최공,,

#include <iostream>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int n, m;
    cin >> n;

    int input[10001] = {0};
    
    for(int i=0; i<n; i++){
        cin >> m;
        input[m] += 1;
    }
  
    for(int i=1; i<10001; i++){
        for(int j=0; j<input[i]; j++){
            cout << i << "\n";
        }
    }
    return 0;
}