Level1 정수 내림차순으로 배치
문제
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건- n은 1이상 8000000000 이하인 자연수입니다.
입출력 | 예 |
n | return |
118372 | 873211 |
풀이
사용언어 : C++
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
bool compare( int a , int b);
long long solution(long long n) {
long long answer = 0;
long long tempNum = n;
vector<int> vecNum;
string strTemp;
while (tempNum > 0){
vecNum.push_back(tempNum%10);
tempNum /= 10;
}
// 기본 정렬이 오름차순 compare를 넣어 내림차순으로 변경
sort(vecNum.begin(), vecNum.end(), compare);
for (int i = 0; i < vecNum.size(); ++i){
strTemp += to_string(vecNum[i]);
}
answer = stol(strTemp);
return answer;
}
bool compare( int a , int b){
return a>b;
}
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12933
'개발 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/C++] 나머지가 1이 되는 수 찾기 (0) | 2022.11.10 |
---|---|
[프로그래머스/C++] 문자열 정수로 바꾸기 (0) | 2022.11.10 |
[프로그래머스/C++] 하샤드수 (0) | 2022.11.08 |
[프로그래머스/C++] 문자열 내 p와 y의 갯수 (0) | 2022.11.08 |
[프로그래머스/C++] 자연수 뒤집어 배열 만들기 (0) | 2022.11.07 |