배열에 있는 수를 잘 정렬해서 가장 큰수를 만들어내는 문제이다
숫자를 하나하나 떼어내서 비교하고 정렬해야하나 복잡하게 생각했다가 도저히 모르겠어서 답을 봤다.
문자열로 바꿔서 정렬하면 된다는 간단한 엔딩...
import java.io.*;
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer="";
String[] strs=new String[numbers.length];
for(int i=0;i<numbers.length;i++){
strs[i]=String.valueOf(numbers[i]);
}
Arrays.sort(strs,(String a,String b)->{
return (b+a).compareTo(a+b);
});
if(strs[0].equals("0")) answer="0"; //주의
else{
for(int i=0;i<strs.length;i++){
answer+=strs[i];
}
}
return answer;
}
}
저기 주의부분은 뭐냐면 배열을 정렬했을때 만약 ["0","0","0"]이 나오면 000이 출력되는게 아니라 0으로 출력되야하므로 조건을 추가해준 것이다.