첫 시도
- 간단한 정렬(내림차순)에 조건이 필요할 것 같음
- 조건 생성 실패
해결
- .compareTo를 사용하여 순서를 정하는데 o2 + o1과 o1 + o2를 비교 -> 예를들어 o1 = 30, o2 = 3이라고 했을 때 303과 330을 비교한다는 것
- 주의해야 할 점은 만약 배열이 0으로만 가득 차 있다면 답은 0이 나와야 하므로 이에 따른 조건을 따로 걸어줘야함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] arr = new String[numbers.length];
for(int i = 0; i< numbers.length; i++) {
arr[i] = Integer.toString(numbers[i]);
}
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2+o1).compareTo(o1+o2);
}
});
if (arr[0].equals("0")) {
return "0";
}
for (int i = 0; i < arr.length; i++) {
answer+= arr[i];
}
return answer;
}
}