문제 설명
함수 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 |