가능한 조합의 개수 중 알몸인 경우를 빼면 된다. 일단 각 옷의 종류마다 각 종류별 입기 + 안 입기가 가능하기 때문에 곱을 통해 전체 조합의 개수를 구한 뒤, 모두 안 입는 경우 하나를 빼자.
import Foundation
let clothCount = Int(String(readLine()!))!
var clothDict = [String:[String]]()
var answer = 1
for _ in 0..<clothCount {
clothDict = [:]
let N = Int(String(readLine()!))!
for _ in 0..<N {
let input = readLine()!.split(separator: " ").map{String($0)}
let (name, cloth) = (input[0], input[1])
var clothes = clothDict[cloth] ?? []
clothes.append(name)
clothDict[cloth] = clothes
}
answer = 1
for key in clothDict.keys {
let count = clothDict[key]!.count + 1
answer *= count
}
print(answer - 1)
}