입력받은 정수 n의 각 자릿수를 내림차순으로 정렬한 정수를 리턴하는 문제이다.

나는 정수 n을 string 으로 변환한 후, int 형 벡터에 집어넣고 sort 함수를 돌린 후 , 다시 string 변수에 집어넣은 다음 long long 형으로 변환했다....

 

그냥 string 문자열 만으로도 sort 함수를 사용할 수 있다는 것을 깜박했다... 굳이 벡터 변환 -> sort 수행 -> string 변환 할 필요가 없었는데ㅠ

 

#include <string>
#include <vector>
#include <algorithm>
#include <stdlib.h>

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    vector<int> temp;
    string s = to_string(n);

    for(int i = 0; i<s.size(); i++)
    {
        temp.push_back(s[i]-'0');
    }

    sort(temp.begin(), temp.end(), greater<int>());

    string cmp;
    for(int i = 0; i<temp.size(); i++)
    {
        cmp += to_string(temp[i]);
    }

    answer = stoll(cmp);
    return answer;
}

+ Recent posts