본문 바로가기

Algorithm/프로그래머스

정렬 - 가장 큰 수

반응형

정렬 - 가장 큰 수(programmers.co.kr/learn/courses/30/lessons/42746?language=kotlin)를 풀어봤다.

 

풀이는 아래와 같다.

    fun solution(numbers: IntArray): String {
        var answer = ""

        numbers.map {
            it.toString()
        }.sortedWith(Comparator<String> { a, b ->
            (b + a).compareTo(a + b)
        }).forEachIndexed { index, s ->
            if (index == 0 && s == "0") {
                return "0"
            }
            answer += s
        }

        return answer
    }

numbers를 map 함수를 사용해 string 형태로 바꾼다.

정렬과 비교를 위해 sortedWith를 사용했다.

(Comparator에 대해선 다시 블로그를 쓸 예정이다. 왜냐면 쓸 줄만 알지 정확히 이해를 못했기 때문이다...)

b+a의 값과 a+b의 값을 비교했고, 정렬했다.

정렬한 결과를 for문을 돌려 index 가 0이면서 s가 0일 경운 어차피 0이기에 바로 return 시켰다.

그게 아니라면, answer에 s를 차례대로 더해 결과를 리턴했다.

반응형

'Algorithm > 프로그래머스' 카테고리의 다른 글

완전탐색 - 모의고사  (0) 2021.01.28
정렬 - H-index  (0) 2021.01.13
정렬 - K번째 수  (0) 2021.01.12
해시 - 완주하지 못한 선수  (0) 2020.12.30
프로그래머스 level2 문제 : 124나라(java)  (0) 2018.11.05