Algorithm/BOJ

[c++][BOJ][1427] 소트인사이드

kim-hasa 2021. 10. 28. 19:00

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

숫자가 들어오면 내림차순으로 정렬하는 문제입니다.

 

숫자 자체를 string으로 받습니다. 그 이후 하나씩 나누어서 벡터에 넣습니다.

 

이 상태에서 벡터를 소트하게 되면, 아스키코드 오름차순 순서로 정렬됩니다.

 

그렇다면 0부터 9 순서로 정렬되므로, 벡터의 뒤부터 출력하면 됩니다.

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    string str;
    cin >> str;
    
    vector<char> arr;
    int len = str.length();
    for(int i=0; i<len; i++)
    {
        arr.push_back(str[i]);
    }
    
    sort(arr.begin(), arr.end());
    
    for(int j=arr.size()-1; j>=0; j--)
    {
        cout<< arr[j];
    }
    
}