문제 풀이/Programmers 문제 풀이

[Programmers 알고리즘, C++]#Level1_정수 내림차순 정렬

Hardii2 2022. 9. 25. 19:03

 

[Programmers 알고리즘, C++]#Level 1_정수 내림차순 정렬

 

Programmers 알고리즘 문제 풀이, Level 1_정수 내림차순 정렬

char <-> int 간 변환과 string <-> 정수 간 변환을 활용하여 풀이하는 문제입니다.

 


 

문제

출저: Prgogrammers 정수 내림차순 정렬 문제

 

풀이
// 1. char to int = -'0'
// 2. int to char = +'0'
// 3. stoi, stol, stof, stod 활용

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

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    vector<long long> v;

    string str = to_string(n);

    for(int i=0; i<str.size(); i++)
    {
        v.push_back(str[i]-'0');
    }

    str.clear();
    sort(begin(v), end(v), greater<>());

    for(int i=0; i<v.size(); i++)
        str += (v[i]+'0');

    answer = stol(str);

    return answer;
}
1. char - '0'

char -> int 변환을 위해 - '0' 해줍니다. 

2. int + '0'

int -> char 변환을 위해 + '0' 해줍니다.

3. stol

string -> long 변환을위해 stol 해줍니다.