문제 설명

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

제한 조건
  • n은 1이상 8000000000 이하인 자연수입니다.

 

풀이 방법 1

1. to_string 함수로 n을 문자열 s로 변환

2. <algorithm> 라이브러리의 sort()함수를 이용해서 내림차순으로 정렬

3. stoll()함수로 문자열 s를 long long형으로 변환

4. answer 리턴

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    
    string s = to_string(n);
    
    sort(s.begin(), s.end(), greater<>());
    
    answer = stoll(s);
    
    return answer;
}

 

풀이 방법 2

1. to_string 함수로 n을 문자열 s로 변환

2. 반복문을 통해 각 문자를 비교하여 내림차순으로 정렬

3. stoll()함수로 문자열 s를 long long형으로 변환

4. answer 리턴

#include <string>
#include <vector

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    
    string s = to_string(n);
    
    for (int i = 0; i < s.length() - 1; i++){
        for( int j = i + 1; j < s.length(); j++){
            char temp = ' ';
            if (s.at(i) < s.at(j)) {
                temp = s.at(i);
                s.at(i) = s.at(j);
                s.at(j) = temp;
            }
        }
    }
    
    answer = stoll(s);
    
    return answer;
}

'프로그래머스 > 1레벨' 카테고리의 다른 글

나머지가 1이 되는 수 찾기  (0) 2022.12.26
크기가 작은 부분문자열  (0) 2022.12.26
자연수 뒤집어 배열로 만들기  (2) 2022.12.25
자릿수 더하기  (0) 2022.12.25
약수의 합  (0) 2022.12.25

+ Recent posts