https://programmers.co.kr/learn/courses/30/lessons/12933

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

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

programmers.co.kr

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <string>
#include <vector>
 
using namespace std;
 
long long solution(long long n)
{
    string strNum;
    strNum = to_string(n);
    for (int i = 0; i < strNum.size(); i++)
    {
        for (int j = i + 1; j < strNum.size(); j++)
        {
            if (strNum[i] < strNum[j])
            {
                char temp = strNum[j];
                strNum[j] = strNum[i];
                strNum[i] = temp;
            }
        }
    }
    long answer = stoull(strNum);
    return answer;
}

 

이중 for문 대신 sort(strNum.begin(),strNum.end(),greater<char>()) 를 사용해도 된다.

+ Recent posts