자료구조, 알고리즘
[프로그래머스] 자바스크립트 위장 문제 - 해시
개발공주
2021. 11. 16. 12:20
728x90
1. 접근 방법
(1) 주어지는 clothes 배열을 for...of 문으로 돌면서 map에 넣어준다.
for (let clothing of clothes) {
if (map.get(clothing[1])) {
map.set(clothing[1], [...map.get(clothing[1]), clothing[0]])
} else {
map.set(clothing[1], [clothing[0]]);
}
}
(2) 옷을 입는 경우의 수를 계산한다. 아무것도 안 입는 경우는(-///-) 없기 때문에 마지막에 1을 뺀다.
for (let [key, value] of map) {
result = result * (value.length + 1)
}
return result - 1;
2. 전체 해답
function solution(clothes) {
let map = new Map();
let result = 1;
for (let clothing of clothes) {
if (map.get(clothing[1])) {
map.set(clothing[1], [...map.get(clothing[1]), clothing[0]])
} else {
map.set(clothing[1], [clothing[0]]);
}
}
for (let [key, value] of map) {
result = result * (value.length + 1)
}
return result - 1;
}
아주 빠르게 풀어버린 문제였다.
728x90