문제

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

요약

  • 각 종류별로 최대 1가지 의상
  • 착용한 의상의 종류와 개수가 다르면 다른 방법으로 간주
  • 최소 한 개의 의상 입음
  • 서로 다른 조합의 수 반환

분류

  • 해시

풀이

1. 내 풀이

  • 딕셔너리를 만들어서 key 를 종류로, value 를 종류에 해당하는 의상의 개수로.
  • 모든 경우의 수를 구할 때, 해당 종류의 의상을 입지 않는 경우를 고려해, 1을 더해서 곱해준다.
  • 모든 옷을 입지 않는 경우는 불가능하므로, 결괏값에서 1을 빼준다.


from collections import defaultdict

def solution(clothes):
    coll = defaultdict(int)
    for name, cate in clothes:
        coll[cate] += 1

    answer = 1
    for i in coll.values() : answer *= i + 1
    return answer - 1