[프로그래머스] 위장

김_리트리버·2020년 8월 25일
0

[알고리즘]

목록 보기
5/47

경우의 수 개념을 제대로 알지 이해하지 못한 것이 아쉬웠다.

예를들어 모자와 안경을 쓰는 경우의 수를 생각해보자

모자는 2종류 있고 안경은 1종류 있다.

이 상황에서 모자를 쓰는 경우의 수는 3이다.

2종류 각각의 경우 + 모자를안쓰는경우

안경을 쓰는 경우의 수는 2이다.

1종류 + 안경을 안쓰는 경우

결과적으로 모자와 안경을 쓰는 경우의 수는 6이다.

하지만 문제에서 아무것도 안입는 경우를 제외한다고 하였다.

이에 모자를안쓰는 경우 X 안경을 안쓰는 경우가 1가지 이기 때문에

전체 경우의 수에서 1을 빼준 값이 정답이다.


function solution(clothes) {
    let answer = 1;
    const obj = {};
    for(let arr of clothes) {
        obj[arr[1]] = (obj[arr[1]] || 0) + 1;
    }

    for(let key in obj) {
        answer *= (obj[key]+1);
    }

    return answer - 1;
}

참고

https://m.blog.naver.com/PostView.nhn?blogId=nowedu1&logNo=220555048785&proxyReferer=https:%2F%2Fwww.google.com%2F

profile
web-developer

0개의 댓글