[ALGO#11] 프로그래머스 레벨2

https://school.programmers.co.kr/learn/courses/30/lessons/42578

쉬운 목차

전체 코드

첫 번째 개체

function solution(clothes) {
    let answer = 1;
    let ch = {}
    clothes.forEach((it) => {
        ch(it(1)) = ch(it(1)) ? ch(it(1)) + 1 : 1;
    })
    //console.log(ch) // { headgear: 2, eyewear: 1 }
    
    // values로 계산
    const values = Object.values(ch);
    //console.log(values) // 	( 2, 1 )
    
    // 착용하지 않은 경우 (배열 of)
    for(let it of values){
        answer *= (it+1)
        console.log(answer)
    }

    // 전부 착용하지 않은 경우
    return answer - 1
    
}

2. 해시

function solution(clothes) {
            var answer = 1;
            let cH = new Map();
            
            for (let (key, val) of clothes) {
                if (cH.has(val)) cH.set(val, cH.get(val) + 1); // 이미 val을 가지고 있다면 +1을 해주고,
                else cH.set(val, 1); // 새로운 val이라면 1로 set 해준다.

} //console.log(cH.values()) (Map Iterator) { 2, 1 } for(let val of cH.values()) { // 객체이니 of 써야 한다 answer*=(val+1); //착용하지 않은 경우를 각 추가 } return answer-1; //최소 한가지 이상을 착용하기 때문에 모두 착용하지 않은 경우 제외 }