문제
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++ 문제들을 푸는데 의외로 기본기가 부족한 느낌이 들어 마음이 좀 아프다...
'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 |