문제설명
- 스파이가 가진 의상들이 담긴 2차원 배열 clothes
- 서로 다른 옷의 조합의 수를 반환
제한사항
- clothes의 배열 길이는 1이상 30이하
- 같은 이름의 의상은 없음
- 스파이는 하루에 최소 한 개의 의상을 입음
풀이
function solution(clothes) {
let answer = 1;
class Spy{
constructor(){
this.obj = {};
}
setClothType(value){
if(this.obj[value])
++this.obj[value];
else
this.obj[value] = 2;
}
}
const targetSpy = new Spy();
clothes.forEach(value=>{
targetSpy.setClothType(value[1]);
})
for(const key in targetSpy.obj){
answer *= targetSpy.obj[key];
}
return answer - 1;
}
체크포인트
- key, value를 이용해 코드 작성
- key에 해당 의상의 이름, value에 의상의 갯수
- 의상의 갯수의 초기 값은 1 이며 안 입었을 경우를 포함하여 1을 더함
- for_in 반복문으로 answer에 의상의 갯수를 곱함
- 스파이는 최소한 하나의 의상을 입으므로 모든 경우의 수에서 1을 뺌