본문 바로가기
코딩테스트 문제집/Programmers(Lv2)

[Programmers] Lv2: 가장 큰 수(42746)

by cogito30 2025. 2. 16.

문제

- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=java

 

풀이

더보기
import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        String[] arr = new String[numbers.length];
        for (int i = 0; i < numbers.length; ++i) {
            arr[i] = Integer.toString(numbers[i]);
        }
        
        Arrays.sort(arr, (o1, o2) -> {
            int a = Integer.parseInt(o1 + o2);
            int b = Integer.parseInt(o2 + o1);
            return Integer.compare(a, b); });
        
        for (int i = arr.length - 1; i >=0; --i) {
            answer += arr[i];
        }
        
        if (answer.charAt(0) == '0') {
            answer = "0";
        }
        return answer;
    }
}