[C++] 프로그래머스 정수 내림차순으로 배치하기
반응형
programmers.co.kr/learn/courses/30/lessons/12933
1. 서론
아주 보물 같은 level 1 문제. 왜냐하면 C++ 함수에 대해서 많이 알게 해 줬기 때문이다ㅎ
2. 문제 풀이
정수 n이 있다. 정수의 각 자릿수에 상관없이 숫자를 문자열처럼 정렬하는 것이 문제이다.
예를들어 118372라고 한다면, 873211로 정렬하는 것이다. 주어진 값은 long long형의 숫자이기 때문에 그 값을 맞춰야 한다.
처음에는 막막했는데 결과적으로는 함수를 잘 활용한다면 아주 쉬운 문제이다.
정수 n을 문자열로 바꾼 다음에 sort 하고 다시 long long으로 바꿔주면 되는 것이다.
하지만 그냥 int형이 아니라 long long 형이기에 그렇게 썩 쉽지만은 않았다.
3. 코드 설명
#include <string>
#include <algorithm>
using namespace std;
long long solution(long long n) {
long long answer = 0;
string s;
s = to_string(n);
sort(s.rbegin(), s.rend());
answer = stoll(s);
return answer;
}
to_string 함수는 int, long 상관없이 무조건 문자열로 바꿔줘서 편리하다.
sort 할때 begin, end 앞에 r을 넣으면 역순으로 정렬할 수 있다.
그리고 stoi는 string to int인데 이 함수는 모든 자료형을 지원한다.
stoi, stol, stod, stoll, stof 등.... 붙이기 나름이다.
단, C++11 부터 지원한다.
반응형
'Algorithm' 카테고리의 다른 글
[C++] 프로그래머스 제일 작은 수 제거하기 (0) | 2020.12.06 |
---|---|
[C++] 프로그래머스 정수 제곱근 판별 (0) | 2020.12.05 |
[C++] 프로그래머스 자연수 뒤집어 배열로 만들기 (0) | 2020.12.05 |
[C++] 프로그래머스 자릿수 더하기 (0) | 2020.12.05 |
[C++] 프로그래머스 이상한 문자 만들기 (0) | 2020.12.04 |