프로그래머스 - 정수 내림차순으로 배치하기 < Level 1 >

2021. 11. 30. 15:06알고리즘_생각하기/프로그래머스 Level 1

  • 정수 내림차순으로 배치하기
문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건
  • n은 1이상 8000000000 이하인 자연수입니다.
입출력 예nreturn
118372 873211

 

풀이

사용 언어 : C++

#include <string>
#include <vector>
#include <algorithm> //sort()
#include<cmath> //pow

using namespace std;

long long solution(long long n) 
{
    long long answer = 0;
    
    vector<int>temp; //임시로 숫자들 잘라서 넣을 백터

   while(n != 0) //숫자 자르기
   {
        temp.push_back(n % 10);
        n /= 10;
   }

   sort(temp.begin(), temp.end(), greater<int>()); //정렬
  
   for (int i = 0; i < temp.size(); i++) //10의 (temp.size() - i - 1)승
   {
       answer += temp[i] * pow(10, temp.size() - i - 1);
   }
    
    return answer;
}