Home 프로그래머스(가장 큰 수)
Post
Cancel

프로그래머스(가장 큰 수)

첫 시도

  • 간단한 정렬(내림차순)에 조건이 필요할 것 같음
  • 조건 생성 실패

해결

  • .compareTo를 사용하여 순서를 정하는데 o2 + o1과 o1 + o2를 비교 -> 예를들어 o1 = 30, o2 = 3이라고 했을 때 303과 330을 비교한다는 것
  • 주의해야 할 점은 만약 배열이 0으로만 가득 차 있다면 답은 0이 나와야 하므로 이에 따른 조건을 따로 걸어줘야함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return (o2+o1).compareTo(o1+o2);
            }
        });

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

참고

This post is licensed under CC BY 4.0 by the author.