大数
8183 ワード
public String solution(int[] numbers) {
String answer = "";
String[] result = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
result[i] = String.valueOf(numbers[i]);
}
// 정렬
Arrays.sort(result, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return ((o2 + o1).compareTo(o1 + o2));
}
});
//0만 있을 경우 [0,0,0,0] 0을 리턴
if(result[0].equals("0")) {
return "0";
}
for(int i = 0; i < result.length; i++) {
answer += result[i];
}
return answer;
}
これは比較器を学ぶことができる時間です.これは難題です.
昇順:(o 2+o 1).compareTo(o1+o2)
降順:(o 1+o 2).compareTo(o2+o1)
ex)5と9を比較すると...
("9"+"5").compareTo("5"+"9")
95.compareTo(59)
Comp耕地:デフォルトの並べ替え基準を実施
Comparator:基本ソート基準を除き、他の基準でソートします.
Compareableを実施した後、CompareToメソッドを実施する.
Comparentを実装せずにオブジェクトの特定の変数に基づいてソートする方法があります.それはCompareatorです.
# compareTo()
: 文字列のアルファベット順序値を比較することで、対応するint値を返します.
A、Bを比較する場合
A=B:0戻り
A>B:1戻る
A
: Comparatorインタフェースを実装する際に記述する方法.
内部実装に従ってint値を返し、2つのパラメータを超えない.
Collections.sort(list, new Comparator<String>(){
@Override
public int compare(String o1, String o1){
if(o1 > o2) {return 1;}
else if( o1 < o2 ) { return 1;}
else {return 0;}
})
Reference
この問題について(大数), 我々は、より多くの情報をここで見つけました https://velog.io/@gahae37/가장큰수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol