[programmers] 가장 큰 수

KwonSC·2022년 4월 11일
0

programmers - Java

목록 보기
13/17
post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/42746


Code

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String[] nums = new String[numbers.length];
        for (int i = 0; i < numbers.length; i++) {
            nums[i] = Integer.toString(numbers[i]);
        }
        Arrays.sort(nums, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
        StringBuffer sb = new StringBuffer();
        for (String num : nums) {
            sb.append(num);
        }
        if (sb.toString().startsWith("0")) {
            return "0";
        }
        else {
            return sb.toString();
        }
    }
}

Solution

Arrays.sort를 할때 왜 저렇게 소팅을 하고 풀지? 라고 생각 했는데 String 배열을 순서대로 붙였을때 가장 큰 수를 만드려면 큰 수 순서대로 소팅을 하면 되니까 저렇게 한다는걸 깨닳았다.
그리고 마지막에 0으로 시작하면 0을 리턴해야하는 예외처리가 필요하다.

0개의 댓글