프로그래머스/정렬
가장 큰 수
have a good time
2025. 3. 25. 10:58
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));