ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 가장 큰 수
    프로그래머스/정렬 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));

     

     

    댓글

Designed by Tistory.