整数降順で配置[プログラマ]-Java


[プログラマ]整数降順で展開

問題の説明


関数解は、パラメータ入力として整数nを受け入れる.nの各ビット数を大きいから小さい順に並べ替えてください.例えば、nが118372の場合、873211が返される.

せいげんじょうけん

  • nは、8000000000を超える自然数です.
  • I/O例



    私の答え

    import java.util.Arrays;
    
    public class Solution {
    
    	public long solution(long n) {
    		int length = (int) Math.log10(n) + 1;
    		int[] numbers = new int[length];
    		
    		for(int i = 1; i <= length; i++) {
    			numbers[i-1] = (int) (n % (Math.pow(10, i)) / Math.pow(10, i-1));
    		}
    		Arrays.sort(numbers);
    		
    		String answer = "";
    		for(int i = length - 1; i >= 0; i--) {
    			answer += numbers[i];
    		}
    		
            return Long.parseLong(answer);
        }
    }
    

    他人の解答

    import java.util.*;
    
    class Solution {
      public long solution(long n) {
            String[] list = String.valueOf(n).split("");
            Arrays.sort(list);
    
            StringBuilder sb = new StringBuilder();
            for (String aList : list) sb.append(aList);
    
            return Long.parseLong(sb.reverse().toString());
      }
    }