프로그래머스/정렬

가장 큰 수

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));