반응형
실제 조합을 일일히 구해서 계산하면 아마 통과하지 못할것이다.
처음에 조합으로 풀고 제출했더니 테케 1번이 오답이 떴고 질문하기를 가보니까 나같은 사람들이 우글대고있었다.
찾아보니까 훨씬 더 간단하게 해결할 수 있는 방법이 있었다.
function solution(clothes) {
var type = new Map();
var arr = [];
var i=0;
clothes.map((value, idx) => {
if(type.get(value[1])===undefined){
arr[i]=2;
type.set(value[1], i++)
} else {
arr[type.get(value[1])]+=1;
}
})
var answer = 1;
arr.map(value => {
answer*=value;
})
answer-=1;
return answer;
}
arr은 종류별 의상의 개수이다. 초기 arr[i]가 2인 이유는 해당 의상을 선택하지 않는 경우도 포함시켜 주기 위함이다. 종류별 의상의 개수 파악이 끝나면 각 종류별 의상의 수를 모두 곱해주고 마지막에 아무것도 입지 않는 경우를 빼준다.(최소한 한가지 의상은 착용해야 하기 때문)
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 위클리챌린지 9주차] 전력망을 둘로 나누기(C++) (0) | 2021.10.07 |
---|---|
[프로그래머스 고득점Kit] 전화번호목록(해시) - c++ (0) | 2021.09.18 |