프린세스 다이어리

[프로그래머스] 자바스크립트 위장 문제 - 해시 본문

자료구조, 알고리즘

[프로그래머스] 자바스크립트 위장 문제 - 해시

개발공주 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
Comments