compare함수를 어떻게 구현할지에 대해 고민을 좀 했던 문제이다. 결국에는 상당히 간단한 구조로 구현이 가능하다는 것을 알았다.
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool compare(string a, string b)
{
return a+b > b+a;// 두 문자열 합하여 비교
}
string solution(vector<int> numbers)
{
string answer = "";
vector<string> v;
/* 문자열로 바꾸어서 새로 저장 */
for(auto c : numbers) v.push_back(to_string(c));
sort(v.begin(), v.end(), compare);
for(auto c : v) answer.append(c);
for(int i=0;i<answer.size();i++)// 0만 들어가있는경우 예외처리
if (answer[i] != '0') return answer;
return "0";
}