[프로그래머스 level2] 위장 JavaScript

IT공부중·2020년 4월 17일
0

알고리즘

목록 보기
16/49

https://programmers.co.kr/learn/courses/30/lessons/42578?language=javascript

function solution(clothes) {
    let answer = 1;
    const temp = {};
    clothes.forEach(element => {
        if (temp[element[1]]){
            temp[element[1]] += 1
        }
        else {
            temp[element[1]] = 2
        }
    });
    answer = Object.keys(temp).reduce((acc, current) => acc * temp[current], answer) - 1;
    return answer;
}

각각의 옷 종류 하나당 안 입었을 때를 1개의 경우로 잡고, 같은 종류가 들어올 때마다 1씩 더해준다. 그러면 이제 종류의 값들을 다 곱해주게 되면 모든 경우의 수가 나오는데 거기에는 아무 옷도 입지 않았을 경우가 포함되어 있기 때문에 아무것도 안 입었을 때의 경우인 1을 빼주면 답이된다.

profile
3년차 프론트엔드 개발자 문건우입니다.

0개의 댓글