プログラマの整数降順でソート
質問する
関数解は、パラメータ入力として整数nを受け入れる.nの各ビット数を大きいから小さい順に並べ替えてください.例えば、nが118372の場合、873211が返される.
せいげんじょうけん
I/O例
に答える import java.util.Arrays;
import java.util.Comparator;
public class ReverseSort {
public static void main(String[] args) {
ReverseSort t = new ReverseSort();
long l = 118372;
long solution = t.solution(l);
System.out.println("solution = " + solution);
}
public long solution(long l) {
long answer = 0;
//long을 받아서 decs으로 정령해야함
char[] chars = String.valueOf(l).toCharArray();
int leng = chars.length;
Integer[] arr = new Integer[leng];
for(int i=0; i<leng; i++){
arr[i] = chars[i] - '0'; //숫자로 변환
}
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(o1>o2) return 1;
return -1;
}
});
for(int i=0; i<leng; i++){
answer += (long) (arr[i] * Math.pow(10,i));
}
return answer;
}
}
JavaのsortとComparatorで解ける簡単な質問です.でもどうして片付けたの?Comparatorの利用に若干の制限があるので、整理しておきたいと思います!
import java.util.Arrays;
import java.util.Comparator;
public class ReverseSort {
public static void main(String[] args) {
ReverseSort t = new ReverseSort();
long l = 118372;
long solution = t.solution(l);
System.out.println("solution = " + solution);
}
public long solution(long l) {
long answer = 0;
//long을 받아서 decs으로 정령해야함
char[] chars = String.valueOf(l).toCharArray();
int leng = chars.length;
Integer[] arr = new Integer[leng];
for(int i=0; i<leng; i++){
arr[i] = chars[i] - '0'; //숫자로 변환
}
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(o1>o2) return 1;
return -1;
}
});
for(int i=0; i<leng; i++){
answer += (long) (arr[i] * Math.pow(10,i));
}
return answer;
}
}
JavaのsortとComparatorで解ける簡単な質問です.でもどうして片付けたの?Comparatorの利用に若干の制限があるので、整理しておきたいと思います!ComparatorはWrapperクラスにのみ適用されます!
Reference
この問題について(プログラマの整数降順でソート), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/프로그래머스-정수-내림차순-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol