본문 바로가기
알고리즘/문제풀이

hash(level2) - 위장

by WWIT 2021. 8. 14.

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

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

 

 

코드

function solution(clothes) { 
    var answer = 1; 
    var obj = {};
    
    for(var i=0; i<clothes.length; i++){
        if(obj[clothes[i][1]] >= 1){
            obj[clothes[i][1]] += 1; //객체에 이미 같은 키값이 있다면 +1을 해준다.
        } else{
            obj[clothes[i][1]] = 1;// 새로운 종류의 옷(키 값)이라면 1로 만든다.
        }
    }
        for(var key in obj){
            answer *= (obj[key]+1);//각 옷 종류마다 안입는 경우를 포함
        }
        return answer -1; //전체 경우의 수에서 모두 안입는 경우 제외
    }

문제풀이

  • 빈객체(obj) 생성
  • 각 옷종류마다 안입는 경우가 있어서 +1씩 한 값들을 곱해준다 => 모든경우의 수가 만들어짐
  • answer -1을 하는 이유 : 문제에서 옷을 무조건 하나는 입고 있다고 함, 모든 경우의 수에서 아무것도 입지않는 경우의 수 1을 빼줌