옷 종류 별 개수를 카운트한 뒤, 가능한 조합의 개수를 고르자. 각 타입의 옷을 안 입을 수도, 모두 입을 수도 있기 때문에 (
n+1
)을 곱해주었고, 마지막에 모든 옷을 입지 않는 경우의 수 하나를 빼주었다.
import Foundation
func solution(_ clothes:[[String]]) -> Int {
var clothDict = [String:[String]]()
for cloth in clothes {
let (name, type) = (cloth[0], cloth[1])
let clothValue = clothDict[type] ?? []
clothDict[type] = clothValue + [name]
}
let values = clothDict.values
var answer = 1
for value in values {
let cnt = value.count
answer *= (cnt + 1)
}
answer -= 1
return answer
}