어려울건 없는 문제다.

string 형식으로 풀 수 있겠지만 그냥 숫자로 풀어보았다.

오름차순으로 sort하고 곱해가는 형식으로 구현했다.

내림차순이 아닌 오름차순 sort의 이유는 mul을 1로 주고 index를 쉽게 보기 위해서다.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    vector<int> arr;

    for (int i = 10; n != 0; n /= 10)
        arr.push_back(n % 10);

    sort(arr.begin(), arr.end());

    long long mul = 1;
    for (int i = 0; i < arr.size(); i++, mul *= 10)
        answer += mul * arr[i];

    return answer;
}

 

+ Recent posts