for (int i = 0; i < numbers.length; i++) {
num[i] = Integer.toString(numbers[i]);
if(numbers[i] != 0) except = false;
}
numbers를 String으로 변환 후 num 배열에 넣기
0이 아니라면 예외 x
Arrays.sort(num, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
Comparator 인터페이스를 lambda형식으로 전개
compareTo 함수는 문자열의 왼쪽부터 두 문자의 아스키코드를 비교하기 때문에 높은 수가 먼저 올 수 있도록 (o2+o1).compareTo(o1+o2)
로 작성
그리고 정답배열에 대입하고 return
import java.util.Arrays;
public class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] num = new String[numbers.length];
boolean except = true; // 000 -> 0
for (int i = 0; i < numbers.length; i++) {
num[i] = Integer.toString(numbers[i]);
if(numbers[i] != 0) except = false;
}
Arrays.sort(num, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
for (int i = 0; i < num.length; i++) {
answer += num[i];
}
if(except) answer = "0";
return answer;
}
}
compareTo 등의 대한 내용을 까먹어서 다시 정리를 하였다.
compareTo