위장 자바스크립트

HyosikPark·2020년 11월 25일
0

알고리즘

목록 보기
38/72
function solution(clothes) {
    
   let map = clothes.reduce((acc,e,i) => 
        acc.set(e[1],acc.get(e[1]) + 1 || 2)
    ,new Map());
    
    return Array.from(map.values())
      .reduce((acc,e) => acc*e ,1) - 1
}

모든 의상을 입어야한다면 종류별 의상개수를 모두 곱해주면 모든 경우의 수가 나온다.
하지만 의상을 아예 안입는 경우부터~하나..둘..~종류별로 모두 한가지씩 입는 경우의 수까지 고려하기위해서는 종류별 의상개수마다 +1을 해준다음에 곱해주면 경우의 수가 나온다.

즉 모자 : 2 상의 : 3 바지 : 2 일 때
종류별로 한가지씩 꼭 입어야한다면 232 = 12가지
모두안입는~모두 한가지씩 입는 : (2+1) (3+1) (2+1) = 36가지이다.

0개의 댓글