C++/프로그래머스

[C++/프로그래머스12933] 정수 내림차순으로 배치하기

서니션 2023. 5. 23. 09:08
728x90
반응형

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다.

n은 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.

예를들어 n이 118372면 873211을 리턴하면 됩니다.

 

제한 조건

- n은 1이상 8000000000 이하인 자연수입니다.

 

입출력 예

n return
118372 873211

 

제출 코드

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

using namespace std;

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

 

코드 설명

1. 입력된 'n'을 'to_string' 함수를 사용하여 문자열로 변환해준다.

이를 통해 숫자의 각 자리수를 조작 가능하다.

2. 문자열 'str'은 <algorithm> 라이브러리의 'sort' 함수를 사용하여 내림차순으로 정렬한다.

정렬에는 'greather<char>()' 비교자가 사용된다.

이는 'n'의 자리수를 큰 순서대로 재배열한다.

3. 정렬된 문자열 'str'은 'stroll' 함수를 사용하여 다시 'long long' 정수로 변환한다.

그 결과가 'answer' 변수에 할당된다.

4. 마지막으로 함수는 결과 숫자를 반환한다.

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90
반응형