[Sart]最大数
2214 ワード
最初の試行で失敗したソース
int [] numbers2 = {3, 30, 34, 5, 9};
この箱は9534330のはずですが、9534303が出てきました.
諸葛亮と他の人の草は我慢して、やっと通過しました
sortメソッドで使用するcompareメソッドは,比較文字列を上書きしてソートする方法である.
compareToでは数値比較や文字列比較ができますが、ここでは文字列の大きさを計算する必要があるので文字列を比較!
数値型比較と文字列比較の戻り値は異なり、数値型比較では同じ値が0であり、基準値が比較対象-1より小さい場合、1より大きい場合は1を返します.
次に、ソース関数とリファレンス関数を示します.
public static String solution(int[] numbers) {
String answer = "";
String [] temp = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
temp[i] = Integer.toString(numbers[i]);
}
Arrays.sort(temp);
String s = "";
for (int j = temp.length; j > 0; j--) {
s += temp[j-1];
}
//System.out.println(s);
answer = s;
return answer;
}
文字列を並べ替えると先頭の数字で並べ替えるので、大きい数字を順番に組み合わせて所望の結果を出力できます.でも.int [] numbers2 = {3, 30, 34, 5, 9};
この箱は9534330のはずですが、9534303が出てきました.
諸葛亮と他の人の草は我慢して、やっと通過しました
sortメソッドで使用するcompareメソッドは,比較文字列を上書きしてソートする方法である.
compareToでは数値比較や文字列比較ができますが、ここでは文字列の大きさを計算する必要があるので文字列を比較!
数値型比較と文字列比較の戻り値は異なり、数値型比較では同じ値が0であり、基準値が比較対象-1より小さい場合、1より大きい場合は1を返します.
次に、ソース関数とリファレンス関数を示します.
public static String solution(int[] numbers) {
String answer = "";
String [] temp = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
temp[i] = Integer.toString(numbers[i]);
}
// 정렬
Arrays.sort(temp, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
System.out.println((o2 + o1) + " " + (o1 + o2));
return ((o2 + o1).compareTo(o1 + o2));
}
});
if(temp[0].equals("0")) {
return "0";
}
for (String a : temp) {
answer += a;
}
return answer;
}
int compareTo(String anotherString)
기준값과 비교대상의 값을 비교하여 0 또는 그 외의 양수나 음수를 반환
- 문자열이 같은 경우 0 리턴
ex) ab.compareTo(ab) = 0
- 비교대상이 문자열에 포함되어 있는 경우 길이의 차 리턴
ex) abcd.compareTo(ab) = 2
- 다른 문자열의 경우 아스키코드 값의 차 리턴
ex) abcd.compareTo(zyxvw) = -25
苦悩の跡を付けるReference
この問題について([Sart]最大数), 我々は、より多くの情報をここで見つけました https://velog.io/@eeun95/Sort-가장-큰-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol