[Kotlin/프로그래머스] 코딩테스트 연습 > 정렬 > 가장 큰 수

👀 문제

https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=kotlin

👊 도전

1. 설계

  1. 문제 조건에 맞게 진행

2. 구현

1
2
3
4
5
6
7
8
9
10
fun solution(numbers: IntArray): String {
      return if (numbers.all { it == 0 }) "0"
         else
         numbers.sortedWith(
         kotlin.Comparator { o1, o2 ->
         "$o2$o1".compareTo("$o1$o2")
         }
         ).joinToString("")
   }
}

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. 문자열 기준 내림차순 정렬한다
    • numbers를 String으로 변환 후 문자열 기준 내림차순 정렬한다.
    • 3, 30은 30, 3 순으로 정렬되야 한다. 이 케이스에 의해 Comparator을 이용하여 “$o1$o2”, “$o2$o1”을 만들어 보고 내림차순으로 정렬한다.
    • [0,0,0]인 경우 “000”이 아닌 0을 리턴해야 하므로 예외 케이스를 추가한다.

👏 해결 완료!