프로그래머스 | 위장

function solution(clothes) {
    var answer = 1;
    let obj=clothes.reduce((acc,e)=>{
        if(e[1] in acc){
            acc[e[1]]+=1;
        }else{
            acc[e[1]]=1;
        }
        return acc 
    },{})
    console.log(obj);
    for(let key in obj){
        answer*=obj[key]+1//각 의상 종류에서 입지 않을 때를 생각해서 +1을 해주고
    }
    
    return answer-1;//의상은 하나 이상 입고 있기 때문에 아무것도 입지 않을 경우를 빼준다
}

다른사람의 풀이에서 array 와 object의 for문 사용 차이점을 다시 기억할 수 있었다.

function solution(clothes) {
    var answer = 1;
    let obj={};
    for(let arr of clothes){
        obj[arr[1]]=(obj[arr[1]]||0)+1;
    }
    for(let key in obj){
        answer*=obj[key]+1
    }
    return answer-1;
}```

좋은 웹페이지 즐겨찾기