알고리즘/프로그래머스
[Kotlin] 의상
728x90
반응형
class Solution {
fun solution(clothes: Array<Array<String>>): Int {
val clothesMap = hashMapOf<String, Int>()
clothes.forEach {
var c = clothesMap.getOrDefault(it[1], 0)
clothesMap[it[1]] = ++c
}
val result = clothesMap.values.fold(1) { total, num ->
total * (num + 1)
}
return result - 1
}
}
좀 더 코틀린스럽게 짜는 연습을 해야겠다..
fun solution(clothes: Array<Array<String>>): Int {
return clothes.groupBy { it[1] }.values.fold(1) { acc, v -> acc * (v.size + 1) } - 1
}
fun solution(clothes: Array<Array<String>>) = clothes
.groupBy { it[1] }.values // group by type of clothes, keep only names of clothes
.map { it.size + 1 } // number of things to wear in a group (including wearing nothing)
.reduce(Int::times) // combine
.minus(1) // remove the case where the spy wears nothing
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Kotlin] 튜플 (0) | 2024.01.17 |
---|---|
[Kotlin] 다리를 지나는 트럭 (0) | 2024.01.17 |
[2단계] N개의 최소공배수 (0) | 2023.12.19 |
[2단계] 가장 큰 수 (0) | 2023.12.05 |
[2단계] KAKAO BLINE RECRUITMENT - 캐시 (0) | 2023.12.04 |
댓글