백준 9375 - 패션왕 신해빈 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/9375
풀이
이 문제는 조합을 활용하여 해결 할 수 있는 문제이다.
주어진 의상의 종류별로 착용할 수 있는 경우의 수를 계산하여 모든 조합을 구하는 방식이다.
쉽게 설명하기 위해서, 예시를 바탕으로 분석을 진행한다.
2
3
hat headgear
sunglasses eyewear
turban headgear
3
mask face
sunglasses face
makeup face
- 첫 번째 테스트 케이스
count = {
"headgear": 2,
"eyewear": 1
}
경우의 수 : (2 + 1) * (1 + 1) - 1 = 5
- 두 번째 테스트 케이스
count = {
"face": 3
}
경우의 수: (3+1) - 1 = 3
시간 복잡도 분석
- N개의 의상을 입력받고 딕셔너리를 사용하여 저장하는 데 O(N).
- 경우의 수를 계산하는 과정에서 O(K) (K는 의상의 종류 수).
- 총 테스트 케이스가 T개 있으므로 O(T * (N + K)).
즉, 최대 약 O(TN)의 시간 복잡도를 가지므로 효율적
코드
# 백준 9375 - 패션왕 신빈
# 분류 : 조합
T = int(input())
for _ in range(T) :
count = {}
N = int(input())
for _ in range(N) :
_, t = input().split()
if t not in count :
count[t] = 0
count[t] += 1
answer = 1
for k, v in count.items() :
answer *= (v + 1)
answer -= 1
print(answer)
'Programming > 백준' 카테고리의 다른 글
백준 31844 - 창고지기 (파이썬) (0) | 2025.03.16 |
---|---|
백준 17219 - 비밀번호 찾기 (1) | 2025.03.15 |
백준 21758 - 꿀 따기 (파이썬) (1) | 2025.03.14 |
백준 1302 - 베스트셀러 (파이썬) (0) | 2025.03.13 |
백준 1092 - 배 (파이썬) (0) | 2025.03.12 |
댓글
이 글 공유하기
다른 글
-
백준 31844 - 창고지기 (파이썬)
백준 31844 - 창고지기 (파이썬)
2025.03.16 -
백준 17219 - 비밀번호 찾기
백준 17219 - 비밀번호 찾기
2025.03.15 -
백준 21758 - 꿀 따기 (파이썬)
백준 21758 - 꿀 따기 (파이썬)
2025.03.14 -
백준 1302 - 베스트셀러 (파이썬)
백준 1302 - 베스트셀러 (파이썬)
2025.03.13