코딩테스트/백준

99클럽 코테 스터디 5일차 TIL, 정렬(가장 큰 수)

feel2 2024. 5. 26. 21:18
반응형

1. 문제 정의

2. 문제 접근

정렬을 하면 될 것 같다.

3. 문제 풀이

  1. int 배열을 String 배열로 바꾼다.
  2. Comparator을 상속받아 정렬을 해준다.
  3. 정답을 리턴한다.

4. 코드

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        StringBuilder sb = new StringBuilder();
        String[] strs = new String[numbers.length];
        
        for(int i = 0; i < numbers.length; i++){
            strs[i] = numbers[i]+"";
        }
        Arrays.sort(strs, (o1,o2) ->  (o2+o1).compareTo(o1+o2));
        
        for(int i = 0; i < strs.length; i++){
            sb.append(strs[i]);
        }
        
        return sb.toString().charAt(0) == '0' ?  "0" : sb.toString();
    }
}

5. 회고

정렬을 쓰면 쉽게 풀 수 있는 문제였다. 다만, 배열이 [0,0,0] 이런식을 경우 답이 -> "0"으로 출력되야 되는 케이스때문에 자꾸 틀렸다....

반응형