9375번 : 패션왕 신해빈 - Python

FriOct·2023년 4월 2일
0

PS

목록 보기
54/108

문제

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

풀이

입력받은 옷을 종류별로 나눠서 카운트 한다. 카운트 한 값에 각각 1을 더해서 곱한뒤 1을 나눈다. 경우의 수 를 구하는 것이다.
1씩 더하는 이유는 입지 않는 것도 선택하기 위해서 이고, 1을 빼는 이유는 아무것도 안 입었을 경우를 빼기 위해서 이다.
headgear : 2개, eyewear : 1개이면 경우의 수는 5개 이다. headgear만 입을 경우 2개 + eyewear만 입을 경우 1개 + headgear랑 eyewear 입을경우 2개 합해서 5개이다.
계산을 해보면 (2+1) * (1+1) - 1 = 5 이다.

코드

from sys import stdin

input = stdin.readline

t = int(input()) #테스트케이스 입력

for _ in range(t):
   n = int(input())
   dic = dict()
   for i in range(n):
       c, ty = input().split()
       if ty in dic: #입력받은 옷의 종류가 있는 종류라면 +1을 한다.
           dic[ty] += 1
       else: #입력받은 옷의 종류가 없는 종류라면 2로 저장한다. (옷의 개수 1 + 선택안할경우 1)
           dic[ty] = 2
   
   sum =1
   for j in dic:
       sum *= dic[j]

   print(sum-1)

profile
꿈 많은 개발자

0개의 댓글