https://www.acmicpc.net/problem/1427
- 일반 정수형으로는 표현할 수 있는 수가 제한되어 있으므로 문자열로 수를 입력받는다.
- string으로 받은 문자를 c_str()함수를 이용해 char*형의 배열로 바꾼다.
- vector을 선언한 후 char*형 배열를 정수로 바꿔 원소 하나하나를 push_back하여 집어넣는다.
- sort알고리즘을 사용해 수를 오름차순 정렬한다.
sort(v.begin(), v.end(), greater<int>());
- 출력
sort(v.begin(), v.end()); //오름차순 sort(v.begin(), v.end(), greater<int>()); //내림차순
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
vector<int> v;
string num;
cin >> num;
const char *numC = num.c_str();
for(int i = 0; i < num.length(); i++)
{
v.push_back(numC[i] - '0');
}
sort(v.begin(), v.end(), greater<int>());
vector<int>::iterator it;
for(it = v.begin(); it != v.end(); it++)
{
cout << *it;
}
}