[프로그래머스 LV.2] 의상

문제 풀이

해쉬 문제로 처음에는 딕셔너리로 넣은 다음 이래저래 조합을 해볼까 하고 이리저리 조립해보니 규칙을 발견하였습니다.

종류 별 개수를 다 곱하고 아무것도 입지 않은 상태만 빼주면 모든 의상의 조합이더라구요.

그럼 결국 조합 문제인건데 해쉬에 들어가있는 이유는 그냥 딕셔너리로 종류별 개수를 카운트하기 때문인 것 같습니다.

풀이 코드

from collections import defaultdict

def solution(clothes):
    cloth = defaultdict()
    
    for name, kind in clothes:
        cloth[kind] = cloth.get(kind, 0) + 1
    
    answer = 1
    for cnt in cloth.values():
        answer *= (cnt + 1)
    
    return answer - 1
반응형