Python/Algorithm

[프로그래머스] 의상 - Python

언킴 2023. 11. 16. 17:25
반응형

해당 문제는 Level 2에 해당하는 문제로, "해시"로 분류된 문제다. 조합 공식을 이용해 아래와 같이 쉽게 풀이할 수 있다. 

 

from collections import defaultdict
def solution(clothes):
    inform = defaultdict(list)
    answer = 1
    for cl in clothes:
        k, v = cl 
        inform[v] += [k]
    
    for k in inform.keys():
        n = len(inform[k])
        answer *= (n + 1)
    
    return answer - 1

 

모든 의상에 대해서 가지고 온 후, 모든 조합을 계산한다. 이때 모든 조합이란, 옷을 아무것도 입지 않는 경우도 포함하는 것이다. 그렇기 때문에 마지막에 -1을 해주어서 값을 도출하면 된다.