본문 바로가기

Algorithm

가장 큰 수

반응형

 

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] = String.valueOf(numbers[i]);
        }

        Arrays.sort(arr, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return (o2 + o1).compareTo(o1 + o2);
            }
        });

        if (arr[0].equals("0"))
            return "0";
        else {
            for (int i = 0; i < arr.length; i++) {
                answer += arr[i];
            }
        }

        return answer;
    }
}

 

 

입력받은 int형 배열을 정렬이 용이한 String형태로 변환한뒤 Arrays.sort를 활용하여 정렬한다.

Comparator를 활용하여 두 String을 합하여 더 큰 쪽이 우선순위가 있도록 규칙을 만들어 준다.

정렬을 하고난뒤 가장 앞자리가 큰 숫자가 arr[0]에 담기게 되는데 해당 값이 0이라는 것의 의미는 숫자가 0000 처럼 0으로만 구성되었다는 의미이므로 0을 return 한다

이외의 경우에는 순차적으로 저장하여 return 해준다.

 

문제 출처 : www.progprogrammers.co.kr

반응형

'Algorithm' 카테고리의 다른 글

문자열 내 p와 y의 개수  (0) 2020.12.04
두 개 뽑아서 더하기  (0) 2020.12.04
Time Conversion  (0) 2020.10.10
Birthday Cake Candles  (0) 2020.10.10
Mini-Max Sum  (0) 2020.10.10