본문 바로가기

개발/algorithm

[백준 9375번] 패션왕 신해빈 - python

문제 링크

https://www.acmicpc.net/problem/9375

 

9375번: 패션왕 신해빈

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

www.acmicpc.net

풀이 

- defaultdict(int)으로 풀이했다. 

- 의상의 종류를 key, 의상 개수를 value 로 두었다. 

따라서 의상을 입을 수 있는 경우의 수는

의상 종류마다 의상을 선택할 수 있는 경우의 수 value + 의상을 선택하지 않을 경우의 수 1  값을 다 곱한 후

알몸인 상태인 1을 빼주면 된다. 

고등학교 때 확률에서 풀었던 문제 느낌 

from collections import defaultdict

test = int(input())

for _ in range(test):
  
  n = int(input())

  dic = defaultdict(int)

  # 의상 종류별 의상 개수 저장 
  for _ in range(n):
    data = input().split()
    
    dic[data[1]] += 1 

  cnt = 1
  # 경우의 수 계산 
  for i in dic:
    cnt *= dic[i] + 1 
  
  print(cnt - 1)