프로그래머스/미해결

프로그래머스 - 의상

yanJuicy 2024. 2. 22. 05:19
반응형

문제

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

 

프로그래머스

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

programmers.co.kr

 

 

풀이

옷의 갯수를 종류별로 합산한다.

옷의 각 종류별로 옷을 입을 수 있는 경우의 수를 구한다.

경우의 수는 다음과 같다.

종류별로 안에 있는 1개만 정해서 입는다. 이는 옷의 종류 갯수와 같다.

또는 카테고리 안에 있는 옷을 아예 입지 않는다.

따라서 특정 종류 안에 있는 옷의 수가 n 이라면 경우의 수는 n + 1이다.

 

여러 종류에서 나오는 경우의 수를 곱하면 모든 종류에 대해서 경우의 수가 나온다.

마지막으로 모든 종류의 옷을 입지 않는 경우가 있으므로 결과에 1을 빼면 된다.

 

 

코드

python

1
2
3
4
5
6
7
8
9
10
11
from collections import defaultdict
 
def solution(clothes):
    d = defaultdict(int)
    for _, category in clothes:
        d[category] += 1
    
    answer = 1
    for cnt in d.values():
        answer *= (cnt + 1)
    return answer - 1
cs
반응형