[프로그래머스 | javascript] 의상 (해시)

728x90
반응형

(1) 내 코드

function solution(clothes) {
   
    let clothesMap ={};
    
    //1. 의상의 종류가 중요함
    clothes.forEach(arr=>{
        const [name,type] = arr
        if(clothesMap.hasOwnProperty(type)){
            clothesMap[type] ++;
        }
        else{
           clothesMap[type]=1
        }
    })
    //console.log(clothesMap) //	{ headgear: 2, eyewear: 1 }
    
    let answer =  1;
    
    //2. 의상의 종류의 경우의 수 : 착용과 착용하지 않았을 모든 경우 
    //2-1. 착용하지 않은 경우를 위해 +1
    for( let val in clothesMap){
        //console.log(val) // 	headgear
        //console.log(clothesMap[val]) //2
        answer *= (clothesMap[val] +1)
        
    }
    
    //3. 아무것도 입지않은 경우 -1 
    //3-1. 코니는 하루에 최소 한개의 의상은 입는다고 했음.
    return answer -1
   
}

 

* headgear:2가지 / eyewear : 1가지

( h1, h2, 안씀) * ( e1, 안씀)

=> clothesMap[val] +1 로 각각 곱해주기

=> 코니는 하루에 최소 한개의 의상을 입는다고 했음 = (안씀) *(안씀) = 1가지 케이스를 제외해야함

 

 

* 이번에 코드 풀면서 유용했던 점 : 객체의 hasOwnProperty()

* 객체로 의상 종류를 카운트 할때, hasOwnProperty()를 사용하여 의상 종류 카운트하기 편리했음

 

 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

 

Object.prototype.hasOwnProperty() - JavaScript | MDN

The hasOwnProperty() method of Object instances returns a boolean indicating whether this object has the specified property as its own property (as opposed to inheriting it).

developer.mozilla.org

 

 

끝.

반응형