영호
[백준] 9375 패션왕 신혜빈 (Python) 본문
문제 링크
https://www.acmicpc.net/problem/9375
나의 풀이
옷을 입을 때 한 종류에서 하나의 옷 밖에 입을 수 없고, 옷의 이름들은 중복해서 주어지지 않기 때문에 저는 defaultdict(int)를 이용하여 문제를 해결했습니다.
- clothes[category] += 1 을 이용하여 해당 옷 종류에 몇 개의 옷들이 주어졌는지 기록을 합니다.
- 아래 예제의 첫 번째 입력을 보면 headgear라는 종류에 hat, turban 2가지 옷이 들어왔고, eyewear종류에 sunglasses 1가지 옷이 들어왔습니다. 이를 defaultdict로 표현하게 되면 아래와 같습니다.
{'headgear' : 2, 'eyewear' : 1}
- 입을 수 있는 옷들의 조합을 구합니다.
- 우선 headgear의 경우 2가지의 옷이 있지만 해당 옷을 입지 않는 경우도 생각을 해야 합니다. 그렇기 때문에 3c1 -> 3이 됩니다.
- 위와 마찬가지고 eyewear는 2c1 -> 2
- 옷을 하나도 안입을 수는 없기 때문에 아무것도 입지않는 경우의 수는 1번 밖에 없기 때문에 -1 을 해줍니다.
예제 입력
2 // 전체 testcase num
3 // 해당 testcase에서 주어지는 옷의 개수
hat headgear // 옷 이름, 종류
sunglasses eyewear
turban headgear
3
mask face
sunglasses face
makeup face
Code
# https://www.acmicpc.net/problem/9375
# 패션왕 신혜빈
from collections import defaultdict
test_num = int(input())
for _ in range(test_num):
n = int(input())
answer = 1
clothes = defaultdict(int)
for _ in range(n):
name, category = input().split()
clothes[category] += 1
for key, value in clothes.items():
answer *= clothes[key] + 1
print(answer-1)
Git
https://github.com/youngh0/Algorithm/blob/master/data-structure/boj_9375.py
'Algorithm' 카테고리의 다른 글
[알고리즘] 정다면체 (Python) (0) | 2022.06.10 |
---|
Comments