위장(프로그래머스)

정승옥(seungok)·2021년 2월 11일
0

프로그래머스

목록 보기
31/40
post-thumbnail

문제설명

  • 스파이가 가진 의상들이 담긴 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을 뺌
profile
Front-End Developer 😁

0개의 댓글