정수 내림차순으로 배치하기

문제


나의 생각

long 타입 매개변수를 일의 자리씩 나누어 list에 담아주고 collections 함수를 이용하여 정렬처리 후 String -> Long 타입으로 변환. 


나의 답안

public static long solution(long n) {
    String after = "";
    ArrayList list = new ArrayList<>();

    while ( n > 0) {
        list.add(n % 10);
        n /= 10;
    }

    Collections.sort(list, Collections.reverseOrder());

    for (int i = 0; i < list.size(); i++) {
        after += list.get(i);
    }

    return Long.parseLong(after);
}

다른 답안

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());
  }
}

'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글

같은 숫자는 싫어  (1) 2023.03.13
두 정수 사이의 합  (0) 2023.03.13
문자열 내 p와 y의 개수  (0) 2023.03.12
자연수 뒤집어 배열로 만들기  (0) 2023.03.12
자릿수 더하기  (0) 2023.03.12