어려울건 없는 문제다.
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;
}
'Coding_Test 연습 > Programmers' 카테고리의 다른 글
| [프로그래머스] (C++) LV1 제일 작은 수 제거하기 (0) | 2022.04.27 |
|---|---|
| [프로그래머스] (C++) LV1 정수 제곱근 판별 (0) | 2022.04.27 |
| [프로그래머스] (C++) LV1 자연수 뒤집어 배열로 만들기 (0) | 2022.04.27 |
| [프로그래머스] (C++) LV1 자릿수 더하기 (0) | 2022.04.27 |
| [프로그래머스] (C++) LV1 이상한 문자 만들기 (0) | 2022.04.27 |