문제 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 접근 방식

옷을 조합하는 경우의 수를 구하는 문제이며, 종류 별로 최대 1가지 의상을 착용할 수 있다. 또한, 하루에 최소 1개의 의상은 입어야하는 조건이 있다.

 

특정 종류의 옷이 k 개 존재할 때, 코니가 옷을 고르는 방법은 k 개중 옷을 고르거나  옷을 고르지 않는 방법이 존재한다. 즉, 코니가 선택할 수 있는 경우의 수는 (k+1) 이다.

따라서, 모든 옷의 종류에 대해 (옷의 가짓수 + 1)을 곱해주고, 모든 종류의 옷에 대해 선택하지 않는 경우의 수  1가지를 빼주면 구하고자 하는 답을 얻을 수 있다.

 

 

코드

def solution(clothes):
    clothe_dict=dict()
    
    for clothe,type in clothes:
        clothe_dict[type]=clothe_dict.get(type,0)+1
    
    answer=1
    for count in clothe_dict.values():
        answer*=count+1
    
    # 모두 선택하지 않는 경우의 수 1가지 제외
    answer-=1
    return answer

 

 

+ Recent posts