정수 내림차순으로 배치하기 - lv.1
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한사항
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
---|---|
118372 | 873211 |
풀이
- math
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
long long solution(long long n) {
long long answer = 0;
long long temp = 10;
vector<int> arr;
while(temp < n * 10){
arr.push_back(((n % temp) - (n % (temp/10))) / (temp/10));
temp *= 10;
}
sort(arr.begin(), arr.end(), greater<int>());
auto len = arr.size();
temp = 1;
for(auto i = 0 ; i < len ; ++i){
answer += (arr.back() * temp);
arr.pop_back();
temp *= 10;
}
return answer;
}