function solution(clothes) {
let answer = 1;
let clothesObj = {};
for (let [x, y] of clothes) {
if ([...Object.keys(clothesObj)].includes(y)) {
clothesObj[y]++;
} else {
clothesObj[y] = 1;
}
}
for (let x of [...Object.values(clothesObj)]) {
answer *= x + 1; // 2벌이 있다고 치면, 2가지의 경우에 입지 않을 경우까지 +1 해서 곱해줘야한다.
}
return answer - 1; // 아무 옷도 입지 않는 경우를 제외해준다.
}
모자 2개, 상의 3개를 가지고 조합하는 수를 생각해보자.
모자를 안쓰거나, 모자1을 쓰거나, 모자2를 쓰거나.
상의를 안 입거나 상의1을 입거나, 상의2를 입거나, 상의 3을 입거나
즉, (2+1) * (3+1) = 12 근데 아무것도 입지 않은 경우가 포함되기에 -1해서 11이 된다.