-
import java.util.*; class Solution { public String solution(int[] numbers) { String answer = ""; // 숫자를 문자열로 변환하여 저장할 배열 String input [] = new String[numbers.length]; for(int i=0; i<numbers.length; i++) { int n = numbers[i]; input[i] = Integer.toString(n); } // 두 숫자 문자열을 이어 붙였을 때 더 큰 수가 나오도록 정렬 // (b + a)와 (a + b)을 비교하여 큰 값이 앞에 오도록 정렬 Arrays.sort(input, (a,b) -> (b+a).compareTo(a+b)); StringBuilder sb = new StringBuilder(); for(String a :input ) { sb.append(a); } String result = sb.toString(); answer = result; // "0000"과 같은 입력이 있을 경우 앞에 0이 올 수 있으므로 처리 // 모든 숫자가 0인 경우 "0"을 반환하도록 처리 if(result.charAt(0)=='0') { answer = "0"; } return answer; } }
아래 부분 실행했을 때
Arrays.sort(input, (a,b) -> (b+a).compareTo(a+b));