반응형
https://programmers.co.kr/learn/courses/30/lessons/42578?language=kotlin
풀이
옷을 입는 방법의 수는 (종류 1 옷의 수) * (종류 2 옷의 수) * ...입니다. 해당 종류의 옷이 존재하지 않으면 고려하지 않습니다. 스파이는 하루에 최소 한 개의 의상은 입으므로, 아무 것도 안 입는 경우의 수를 하나 제거합니다. 안경만 입거나 하긴 한다는 거네... 변태.
class Solution {
fun solution(clothes: Array<Array<String>>) =
clothes.groupBy { (_, type) -> type }.values
.fold(1) { acc, v -> acc * (v.size + 1) } - 1
}
.fold 메소드는 .reduce와 같이 배열을 순회하며 클로저를 실행해 결과를 acc에 누적하는 역할을 하지만, .reduce는 배열의 첫 번째 값을 acc의 초깃값으로 사용하는 반면, .fold를 사용하면 acc의 초깃값을 지정해줄 수 있습니다.
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 프린터 #코틀린 #kotlin #큐 #queue #level2 (0) | 2021.06.02 |
---|---|
[프로그래머스] 기능 개발 #코틀린 #kotlin #스택 #stack #level2 (0) | 2021.06.01 |
[프로그래머스] 베스트앨범 #코틀린 #kotlin #hash #level3 (1) | 2021.06.01 |
[프로그래머스] 순위 #파이썬 #그래프 #Floyd-Warshall #Level3 (2) | 2021.05.24 |
[프로그래머스] 숫자 게임 #파이썬 #정렬 #Greedy [Summer/Winter Coding(~2018)] (0) | 2021.05.22 |