๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฐ€์žฅ ํฐ ์ˆ˜ (Level 2)

by ์•ˆ์ฃผํ˜• 2021. 10. 19.
 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์žฅ ํฐ ์ˆ˜

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ

programmers.co.kr

 

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


using namespace std;

bool cmp(string a, string b){

    if(a.length()!=b.length())  return stoi(a+b)>stoi(b+a);
    else return stoi(a)>stoi(b);

}



string solution(vector<int> numbers) {
    string answer = "";
    vector<string>temp;

    for(int i=0; i<numbers.size(); i++){
        temp.push_back(to_string(numbers[i]));
    }

    sort(temp.begin(),temp.end(), cmp);

    for(int i=0; i<temp.size(); i++){
        answer+=temp[i];
    }

    if(answer[0]=='0') return "0";
    else return answer;
}

๋Œ“๊ธ€