반응형
정렬 - 가장 큰 수(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 |