0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return하는 solution함수를 작성하는 문제이다.
정렬 문제임을 아는 순간 Comparator를 활용해서 풀어야겠다고 생각했다. 가장 큰 수를 만들어야 하므로, 배열이 내림차순으로 정렬되도록 Comparator를 작성하였다.
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] sn = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
sn[i] = numbers[i] + "";
}
Arrays.sort(sn, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2 + o1).compareTo(o1 + o2);
}
});
if (sn[0].equals("0"))
return "0";
for (String s : sn) {
answer += s;
}
return answer;
}
}