쌓고 쌓다
[프로그래머스] 정수 내림차순으로 배치하기 C++ 풀이 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12933?language=cpp
전체 코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool comp(char a, char b)
{
if(a>b)
return true;
return false;
}
long long solution(long long n) {
long long answer = 0;
string str;
while(n!=0)
{
str+=to_string(n%10);
n/=10;
}
sort(str.begin(),str.end(),comp);
answer=stoll(str);
return answer;
}
한자리씩 뜯어 string에 넣고 string을 내림차순으로 정렬한뒤
stoll 함수를 통해 long long 형식으로 바꾼다.
만약 stoi 함수를 사용한 경우 int 범위가 21억까지만 가능하기에
문제 조건에서 n은 80억 이하 자연수라 했으므로 int로 바꾼다면 아래와 같이 실패한다.
+ 다른사람 풀이를 보니 알았는데
n을 바로 to_string()함수를 통해 string으로 바꾸고 정렬을해버리는 방법이 있다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 짝수와 홀수 C++ 풀이 (0) | 2022.07.07 |
---|---|
[프로그래머스] 제일 작인 수 제거하기 C++ 풀이 (0) | 2022.07.07 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 C++ 풀이 (0) | 2022.07.07 |
[프로그래머스] 자릿수 더하기 C++ 풀이 (0) | 2022.07.07 |
[프로그래머스] 이상한 문자 만들기 C++ 풀이 (0) | 2022.07.07 |
Comments