프로그래머스 / Level 2 , 해시 , 위장 자바스크립트 , JS
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/42578
풀이
모든 경우의 수를 세주고 마지막에 아무것도 착용하지 않는 경우 1가지만 빼주면 된다.
정답
function solution(clothes) {
let idx = 0;
let arr = [...new Array(clothes.length)].map(() => []);
let dict = {};
for (let i of clothes) {
if (Object.keys(dict).includes(i[1])) arr[dict[i[1]]].push(i[0]);
else {
dict[i[1]] = idx;
arr[idx].push(i[0]);
idx += 1;
}
}
console.log(arr);
let answer = 1;
for (let i of arr) {
answer *= i.length + 1;
}
answer -= 1;
return answer;
}
반응형