728x90
function solution(clothes) {
let clothesKeys = []; //의상이름 ['a', 'b', ...]
//1. 의상 이름 담기
for(let i=0; i<clothes.length; i++) {
let key = clothes[i][1];
if(clothesKeys.length==0){
clothesKeys.push(key);
} else {
//추가된 키가 없으면 추가.
if(!clothesKeys.find(k=>k==key)) {
clothesKeys.push(key);
}
}
}
//2. 다른 조합의 수 구하기
// 다른 조합의 수 = key 갯수 + (keys의 key.length 들을 곱한 수)
let resultCnt = 0;
if(clothesKeys.length==1) {
return clothes.length;
} else {
for(let i=0; i<clothesKeys.length; i++) {
let cnt = clothes.filter(clo=>clo[1]==clothesKeys[i]).length;
cnt = cnt+1; //선택안함 경우의수 추가
if(resultCnt==0) {
resultCnt = cnt;
} else {
resultCnt = resultCnt * cnt;
}
}
resultCnt = resultCnt-1; //하나도 선택안함 경우의수 빼기
return resultCnt; //clothes.length
}
}
728x90
'Study Note > Algorithm' 카테고리의 다른 글
프로그래머스 #정렬 - K번째수 lv1 (0) | 2021.01.20 |
---|---|
프로그래머스 #해시 - 베스트앨범 lv3 (0) | 2021.01.16 |
프로그래머스 #스택/큐 - 기능개발 lv2 (0) | 2021.01.16 |
프로그래머스 #해시 - 완주하지 못한 선수 lv1 (1) | 2020.10.16 |
Algorithm #순열 알고리즘 (0) | 2019.08.19 |
댓글