반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42578
풀이
옷의 갯수를 종류별로 합산한다.
옷의 각 종류별로 옷을 입을 수 있는 경우의 수를 구한다.
경우의 수는 다음과 같다.
종류별로 안에 있는 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 |
반응형
'프로그래머스 > 미해결' 카테고리의 다른 글
프로그래머스 - 다단계 칫솔 판매 (0) | 2024.03.04 |
---|---|
프로그래머스 - [3차] 압축 (0) | 2024.02.24 |
프로그래머스 - 메뉴 리뉴얼 (1) | 2024.02.12 |
프로그래머스 - 베스트앨범 (1) | 2024.02.10 |
프로그래머스 - 표 편집 (0) | 2024.01.23 |