처음으로 이 문제를 봤을 때 int* arr = new int[N] 으로 동적할당을 받거나 vector를 쓸 생각을 해서 아래와 같이 작성했었다.
#include <iostream>
#include<algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int num;
int* arr = new int[N];
for (int i = 0; i < N; i++) {
cin >> num;
arr[i] = num;
}
sort(arr, arr + N);
for (int i = 0; i < N; i++) {
cout << arr[i];
}
delete arr;
}
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int num;
vector<int> a;
for (int i = 0; i < N; i++) {
cin >> num;
a.push_back(num);
}
sort(a.begin(), a.end());
for (int i = 0; i < N; i++) {
cout << a[i] << '\n';
}
}
하지만 잘 안 되길래 아래와 같은 방법을 써보았다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int arr[10001] = { 0 };
for (int i = 0; i < N; i++) {
int num;
cin >> num;
arr[num] += 1;
}
for (int i = 1; i < 10001; i++) {
for (int j = 0; j < arr[i]; j++) {
cout << i << '\n';
}
}
// 여기서 delete arr을 쓸 수 없는 이유는 동적할당을 한게 아니기 때문이다.
}
'코딩테스트 > C++' 카테고리의 다른 글
백준 정렬 알고리즘 25303번 C++ (0) | 2024.03.08 |
---|---|
백준 정렬 알고리즘 1427번 C++ (0) | 2024.03.07 |
백준 정렬 알고리즘 25303번 C++ (0) | 2024.03.05 |
백준 정렬 알고리즘 2587번 C++ (0) | 2024.03.05 |
백준 정렬 알고리즘 2751번 C++ (0) | 2024.03.04 |