안녕 세상아,

[프로그래머스/c++] LV1 정수 내림차순으로 배치하기 본문

프로그래머스

[프로그래머스/c++] LV1 정수 내림차순으로 배치하기

돈 많은 백수가 되고싶다 2024. 7. 29. 17:32

https://school.programmers.co.kr/learn/courses/30/lessons/12933#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

짧은 식견으로는 string으로도 sort 를 사용할 수 있는지 몰랐다..

그래서 계속 vector로 바꾸고 어쩌고 했는데 signal: aborted (core dumped) 이거 떠 당황..

 

암튼 결론은 sort를 사용하면 된다. sort를 사용하기 위해서는 헤더에 #include <algorithm> 포함해야한다. 

 

내림차순으로 정렬하기 위해서는 rbegin, rend 사용해도 되는데 나는 greater가 익숙해서 그냥 사용함. 

greater는 내림차순으로 정렬하기 위해 뒤에 적어주면 된다. 만약 오름차순으로 정렬하려면 안적어줘도 된다. 원래 적을게 있긴 한데 생략해도 가능. 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    
    string str = to_string(n);
    for(int i=0; i<str.size(); i++){
        sort(str.begin(), str.end(), greater<>());
    }
    answer = stoll(str);
    
    return answer;
}