문제 설명
함수 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
'C++ > 프로그래머스' 카테고리의 다른 글
[C++/프로그래머스42885] 구명보트 (0) | 2023.05.31 |
---|---|
[C++/프로그래머스81301] 숫자 문자열과 영단어 (0) | 2023.05.31 |
[C++/프로그래머스12973] 짝지어 제거하기 (0) | 2023.05.31 |
[C++/프로그래머스12944] 평균 구하기 (0) | 2023.05.23 |
[C++/프로그래머스12912] 두 정수 사이의 합 (0) | 2023.05.23 |