각 의상 종류에 아무것도 입지 않는 선택지 1을 더한 후 무작위로 의상 종류만큼을 뽑는 경우의 수 (이때 어떤 종류도 입지 않는 경우 하나는 제외해야 함)
1. 의상 종류를 키, 개수를 값으로 하는 객체 생성
2. 의상 배열에 대해 반복하면서 개수 세기
이때 초깃값을 1로 두어서 아무것도 입지 않는 선택지를 추가
3. 1번 객체의 값 배열을 얻어서 모든 요소 곱하기: Object.values()
, reduce()
4. 아무것도 입지 않는 선택지 1 빼기
function solution(clothes) {
const obj = {};
clothes.forEach((e) => (obj[e[1]] = (obj[e[1]] || 1) + 1));
return Object.values(obj).reduce((result, n) => result * n, 1) - 1;
}