プログラマ質問の回答-最大数(C++)
1954 ワード
プログラマの質問-最大数(C++)
問題の説明
...各数値を並べ替えることで最大数を返す問題です.
これは簡単なソートの問題です.
しょきかいほう
C++のアルゴリズムライブラリでnext permutationを使用してソートし、その最大数を検索する方法を選択します.
タイムアウトは発生しませんがcore duffingエラーが発生しました.
Pythonのitertoolsのように使わずに先に実現...
かいしゃく法を改正する
#include <string>
#include <vector>
using namespace std;
bool sort_def(string a,string b){
return a+b>b+a;
}
string solution(vector<int> numbers) {
string answer = "";
int max = 0;
vector<string> sv;
for(auto idx:numbers){
sv.push_back(to_string(idx));
}
sort(sv.begin(),sv.end(),sort_def);
if(sv.at(0)=="0")return "0";
for(auto c:sv){
answer+=c;
}
return answer;
}
-ex)「3」と「30」がある場合、数字で比較すると30はもっと大きい数字ですが、私たちは組み合わせて大きな数字を形成するので「330」>「303」なので、2つのstringを加えて大きな値で並べ替えます.
そうでない場合は、結果値を答え文字列に出力します.
Reference
この問題について(プログラマ質問の回答-最大数(C++)), 我々は、より多くの情報をここで見つけました https://velog.io/@mkdevelop5002/프로그래머스-문제풀이-가장-큰-수with-Cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol