c++ STL의 sort 함수는 시간복잡도가 O(nlongn)이다.
이를 사용해서 문제를 해결할 수 있다.
2751번은 sort 함수는 default가 오름차순이므로 sort 함수를 사용하면 된다.
11931번은 내림차순을 만들어주는 함수를 만들어서 이를 sort 함수의 마지막에 인자값에 넣어주면 된다.
2751번
#include <bits/stdc++.h>
int main()
{
int n, m;
std::vector<int> v;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &m);
v.push_back(m);
}
std::sort(v.begin(), v.end());
for (auto e : v)
printf("%d\n", e);
}
11931번
#include <bits/stdc++.h>
bool desc(int a, int b)
{
return a > b;
}
int main()
{
int n, m;
std::vector<int> v;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &m);
v.push_back(m);
}
std::sort(v.begin(), v.end(), desc);
for (auto e : v)
printf("%d\n", e);
}
c++ STL의 sort 함수를 사용하고는 있었으나 이 함수의 시간복잡도가 O(nlongn)인 것은 처음 알게 되었다.