[단계별로 풀어보기][Python 3] 정수론 및 조합론 - 패션왕 신해빈(9375)

2022. 5. 3. 23:28공부/알고리즘

9375번: 패션왕 신해빈 (acmicpc.net)

 

9375번: 패션왕 신해빈

첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로   (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.

www.acmicpc.net

해빈이가 가진 의상의 종류와 개수를 비교하여 경우의 수를 도출하는 문제다.

풀이

tc = int(input())

res = []
for i in range(tc):
    n = int(input())
    dc = {}
    for j in range(n):
        name, type = input().split()
        if type not in dc:
            dc[type] = 1
        else:
            dc[type] += 1
    num = list(dc.values())
    
    r = 1
    for j in num:
        r *= j+1
    res.append(r-1)

for i in res:
    print(i)

딕셔너리를 이용해 각 아이템의 종류를 구분한다.

각 아이템을 아예 착용하지 않는 경우가 있으니 +1을 하여 모두 곱해준 뒤, 아예 모든 아이템을 착용하지 않는 경우 1을 빼준다.