해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.
https://programmers.co.kr/learn/courses/30/lessons/42746
풀이 : String으로 변환 후 정렬
import java.util.Arrays;
class Solution {
public static String solution(int[] numbers) {
String [] arr = new String [numbers.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = String.valueOf(numbers[i]); // String으로 변환
}
Arrays.sort(arr, (a,b) -> (b+a).compareTo(a+b));
// 규칙에 맞게 정렬
if(arr[0].equals("0")) return "0"; // 맨 앞의 문자가 0이면 제일 큰 수가 0이다.
StringBuilder sb = new StringBuilder();
for(String s : arr) sb.append(s);
return sb.toString();
}