카테고리 없음

[고득점Kit/정렬] 가장 큰 수

녱녱 2023. 5. 16.

import java.util.*;

public class Solution {
    public String solution(int[] numbers) {
        String[] arr = new String[numbers.length];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = String.valueOf(numbers[i]);
        }

        Arrays.sort(arr, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
        
        if (arr[0].equals("0")) {
           return "0";
        }

        StringBuilder answer = new StringBuilder();

        for (String s : arr) {
            answer.append(s);
        }


        return answer.toString();
    }
}

"compareTo" 메소드의 반환 값

  • 비교 대상 문자열이 동일한 경우: 0을 반환
  • 비교 대상 문자열이 다른 경우:
    • 첫 번째 문자열이 더 작은 경우: 음수를 반환
    • 첫 번째 문자열이 더 큰 경우: 양수를 반환

사실 처음엔

이런 식으로 앞에서 부터 첫째자리 비교 -> 다음자리 비교 이런 식으로 해보려고 했는데

원소가 1000까지 가능하다고 했으니까 비교 횟수 생각하면 어휴....

 

 

댓글