プログラマ最大数c++


これはプログラマーの最大の難題です.
質問リンク:https://programmers.co.kr/learn/courses/30/lessons/42746#

アイデア:値を文字列形式でベクトルに格納し、新しく定義した関数に基づいてソートします.
最初は、最後のテストケースがずっと間違っていることに気づきました.プログラマーに質問したとき、文章を探していたとき、なぜ間違っているのかを発見しました.
コードでは、v[0]=「0」の場合、答え=「0」が個別に定義されます.
このセクションが定義されていない場合、番号は{0.0.0}で、答えは=000です.
したがって、if文v[0]=「0」を用いる場合は、それぞれresponse=「0」で処理する.
やはりいつも反例を見つけるのは難しい.ううう
ソフトコード:
#include <string>
#include <vector>
#include <algorithm>


using namespace std;


bool cmp(string &a,string &b){
    return a+b>b+a;
}

string solution(vector<int> numbers) {
    string answer = "";
    answer="";
  vector<string>v;
 
    for(int i=0;i<numbers.size();i++){
        v.push_back(to_string(numbers[i]));
    }
    
    sort(v.begin(), v.end(),cmp);
    
    if(v[0]=="0"){
        answer="0";
        
    }else{
        for(int i=0;i<numbers.size();i++){
        answer+=v[i];
    }
    }

    
    
    return answer;
}