Algorithm & SQL/Programmers

[Programmers Lv.2 / Java] 가장 큰 수

김룹 2024. 3. 28. 11:52

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

👇 내가 작성한 코드

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String[] arr = new String[numbers.length];
        
        for(int i = 0; i < numbers.length; i++) {
            arr[i] = String.valueOf(numbers[i]);
        }
        
        // 두 수를 합친 값을 기준으로 내림차순
        // o1 : 30, o2 : 5 일 경우, 305와 530 중 더 큰 값 비교
        Arrays.sort(arr, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
        
        // 정렬된 배열의 맨 처음이 0이라면 0으로만 되어있음. 0 반환
        return arr[0].equals("0") ? "0" : String.join("", arr);
    }
}