본문 바로가기
Study (etc)/Problem Solving

[BOJ / C++] 10989번 : 수 정렬하기 3

by Haren 2022. 9. 8.

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

Solved.ac 레벨

브론즈 I

풀이

#include <bits/stdc++.h>

using namespace std;

int n;
int cnt[10001];

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

    cin >> n;
    
    for(int i = 0; i < n; i++){
        int input;
        cin >> input;
        cnt[input]++;
    }

    for(int i = 1; i < 10001; i++){
        for(int j = 0; j < cnt[i]; j++){
            cout << i << '\n';
        }
    }

    return 0;
}

브론즈 문제라고 너무 얕잡아 본 것 같다.

메모리 제한이 8MB인데, 배열, 우선순위 큐 같은 변수에 저장해서 처리하기에는 턱없이 부족했다. 그래서 그냥 각 숫자의 개수를 저장해서 출력하는 것으로 처리할 수 있었다.

Solved.ac의 Class2++ 문제들을 푸는데 의외로 기본기가 부족한 느낌이 들어 마음이 좀 아프다...

 

 

10989번: 수 정렬하기 3

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

www.acmicpc.net

 

'Study (etc) > Problem Solving' 카테고리의 다른 글

[BOJ / C++] 4999번 : 아!  (0) 2022.09.11
[BOJ / C++] 1149번 : RGB 거리  (0) 2022.09.08
[BOJ / C++] 2775번 : 부녀회장이 될테야  (0) 2022.09.06
[BOJ / C++] 7568번 : 덩치  (0) 2022.09.04
[BOJ / C++] 2231번 : 분해합  (0) 2022.09.04