문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴하세요. 단, n은 1이상 80억 이하 자연수입니.
작성한 코드
// 내 풀이
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long solution(long long n) {
string ans = "";
vector<int> num;
for(char c : to_string(n))
num.push_back(c - '0');
sort(num.begin(), num.end());
for(int v : num){
char k = v + '0';
ans.insert(0, 1, k);
}
return stoll(ans);
}
// 다른 풀이
#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;
}
핵심 포인트
string도 sort가 된다
내림차순 정렬은 sort(start, end, greater<자료형>())으로 가능하다.
'C++ > 코테 문제 풀이' 카테고리의 다른 글
[프로그래머스/C++] 두 정수 사이의 합 (0) | 2023.09.13 |
---|---|
[프로그래머스/C++] 하샤드 수 (0) | 2023.09.13 |
[프로그래머스/C++] 정수 제곱근 판별(lv1) (0) | 2023.09.13 |
[프로그래머스/C++] 문자열을 정수로 바꾸기(lv1) (0) | 2023.09.13 |
[프로그래머스/C++] 문자열 내 p와 y의 개수(lv1) (0) | 2023.09.13 |