https://programmers.co.kr/learn/courses/30/lessons/42578?language=javascript
{
headgear: 1,
eyewear: 2,
...
}
calcCombination
ex) 얼굴1, 얼굴2, 얼굴없는 / 안경1, 안경2, 안경없는 => 3 * 3return result - 1; // 3 * 3 - 1
function mapper(clothes) {
const map = {};
clothes.forEach(([_, kind]) => {
if( !map[kind] ) {
map[kind] = 1;
} else {
map[kind]++;
}
});
return map;
}
function calcCombination(map) {
const categoryCounts = Object.values(map);
const result = categoryCounts.reduce((acc, cur) => {
acc = acc * (cur + 1);
return acc;
}, 1);
return result;
}
function solution(clothes) {
const map = mapper(clothes);
const result = calcCombination(map);
return result - 1;
}