https://school.programmers.co.kr/learn/courses/30/lessons/42746
algorithm 헤더의 sort 함수에 compare 인자를 커스텀해서 넣어준다.
1-1. 문자열끼리 더해서 더 큰 문자열이 앞에 오도록 정렬해준다. 이때, compare 인자는 객체를 생성해서 전달해주어야 한다.
1-2. 아래 코드의 경우, 익명 구조체를 생성한 뒤 () 연산자로 함수 객체를 생성하여 compare 인자에 넣는 방식을 사용하였다.
1에서 정렬한 뒤, 더 큰 문자열이 앞에 있기 때문에 순서대로 string에 이어붙인다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct
{
bool operator()(string a, string b) const {return a+b > b+a;}
}
compareString;
string solution(vector<int> numbers)
{
vector<string> numbers_string;
for(int i : numbers)
{
string newNumber = to_string(i);
numbers_string.push_back(newNumber);
}
sort(numbers_string.begin(), numbers_string.end(), compareString);
if(numbers_string[0] == "0")
{
return "0";
}
string answer;
for(string s : numbers_string)
{
answer += s;
}
return answer;
}