Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

프로그래머스 - 의상

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

전체 경우의 수는 옷을 하나도 안입는 경우를 제외한 모든 수 -> 카테고리 별 경우의 수를 product로 계산 뒤 1을 뺴주면 된다.

  • Counter를 통해 Category 별 경우의 수 추출
  • reduce 함수를 통해 전체 곱연산
1
2
3
4
5
6
7
8
9
10
11
from collections import Counter
from functools import reduce

def solution(clothes):
    answer = 0
    
    # 경우의 수
    count = Counter([category for _, category in clothes])
    
    # category 별 경우의 수 (product) - 1
    return reduce(lambda x,y : x*(y+1), count.values(), 1) - 1