* 개인 기록용 글이므로 풀이는 내용에 없음
sort함수의 Comparator에다가, compareTo함수를 이용해 String을 비교하는 정렬 유형의 좋은 문제인 것 같다.
처음엔 두 수의 같은 자릿수를 비교하며 더 큰 수가 나올 때까지 비교하는 로직을 직접 람다함수로 구현했는데, 나중에 깨달은 게 문자열을 비교하는 함수와 똑같았어서 compareTo함수를 사용하면 됐었다.
import java.util.*; class Solution { public String solution(int[] numbers) { String[] numberStr = new String[numbers.length]; for(int i = 0; i < numbers.length; i++){ numberStr[i] = numbers[i]+""; } Arrays.sort(numberStr, (o1,o2) ->{ String str1 = o2+o1; return str1.compareTo(o1+o2); }); if(numberStr[0].equals("0")){ return "0"; } StringBuilder sb = new StringBuilder(); for(int i = 0; i < numberStr.length; i++){ sb.append(numberStr[i]); } return sb.toString(); } }+ 단순히 사전 순으로 정렬하는 게 아니므로, compareTo함수를 오버라이딩 해주어야 함
(그냥 Arrays.sort(String[])만 하면 안됨)