250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++)정수 내림차순으로 배치하기 본문
728x90
반응형
long long형의 정수 n을 내림차순으로 배치해야 한다.
우선 각 자릿수를 구하여 v 벡터에 저장을 해준다.
이때 v벡터는 long long 형이 아니어도 된다..!
1자리 수를 저장하면 되기 때문..!
while문을 통해 각 자릿수를 구하면 sort함수를 통해 오름차순으로 정렬을 한다.
그 후 for문으로 10의 i 승 * v[i]를 해주면 된다..!
예시를 들자면
1) 118372를 while문을 통하여 1 1 8 3 7 2로 v 벡터에 저장을 한다.
2) sort함수를 통해 1 1 2 3 7 8 로 정렬을 한다.
3) i = 0일 때, 10의 0승 * v[0] = 1 * 1
i = 1일 때, 10의 1승 * v[1] = 10 * 1
i = 2일 때, 10의 2승 * v[2] = 100 * 2 ...
이런 식으로 for문이 돌게 된다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long solution(long long n) {
long long answer = 0;
vector<int> v;
while(n > 0)
{
v.push_back(n % 10);
n /= 10;
}
sort(v.begin(), v.end());
for(int i = 0; i < v.size(); i++)
answer += pow(10, i) * v[i];
return answer;
}
728x90
반응형
'프로그래머스 알고리즘 > 1단계' 카테고리의 다른 글
(프로그래머스 c++)제일 작은 수 제거하기 (0) | 2020.04.28 |
---|---|
(프로그래머스 c++)정수 제곱근 판별 (0) | 2020.04.28 |
(프로그래머스 c++)자연수 뒤집어 배열로 만들기 (0) | 2020.04.27 |
(프로그래머스 c++)자릿수 더하기 (0) | 2020.04.27 |
(프로그래머스 c++)이상한 문자 만들기 (0) | 2020.04.27 |