import java.util.*;
public class 가장큰수 {
public String solution(int[] numbers) {
String str_numbers[] = new String[numbers.length];
String answer = "";
for(int i=0; i<str_numbers.length; i++) {
str_numbers[i] = String.valueOf(numbers[i]);
}
Arrays.sort(str_numbers, (s1,s2) -> (s2+s1).compareTo(s1+s2));
if(str_numbers[0].startsWith("0")){
return "0";
}else{
for(int i=0; i<str_numbers.length; i++){
answer += str_numbers[i];
}
}
return answer;
}
}
Coparator 타입안에는 compare 메소드가 있다. 이 메소드를 오버라이딩 하는 것이다. s2+s1 > s1+s2 이면 양수가 return되어 s1과 s2자리가 바뀔 것이다. 0이나 음수의 경우는 바뀌지 않는다. 위의 코드는 람다식을 사용하였다.