https://www.acmicpc.net/problem/9375
from collections import defaultdict
#종류를 키값으로 두기
t=int(input())#테스트 케이스 수
for _ in range(t):
n=int(input())#의상 수
lst=[]
for _ in range(n):#데이터 받기
name, kind=input().split()
lst.append((kind, name))
data=defaultdict(list)#인수를 list로 설정해야 리스트에 있는 값을 빼와서 dict만들 수있음
for key, value in lst:#딕셔너리로 만들기
data[key].append(value)
day=1
for key in data:
day*=(len(data[key])+1)# (a종류수+1)*(b종류수+1)입지 않아도 되는 경우의 +1
print(day-1)#의상 무조건 입어야하니까 아무것도 안입는 경우의수 뺴주기
from collections import defaultdict
#종류를 키값으로 두기
t=int(input())#테스트 케이스 수
for _ in range(t):
n=int(input())#의상 수
lst=[]
for _ in range(n):#데이터 받기
name, kind=input().split()
lst.append((kind, name))
딕셔너리를 만들어 주기 위해 defaultdict를 임포트 해준다.
테스트 케이스 수t, 의상수n, 의상 이름 name, 의상 종류 kind를 입력받는다.
data=defaultdict(list)#인수를 list로 설정해야 리스트에 있는 값을 빼와서 dict만들 수있음
for key, value in lst:#딕셔너리로 만들기
data[key].append(value)
받은 경우의 수를 딕셔너리로 만든다.
day=1
for key in data:
day*=(len(data[key])+1)# (a종류수+1)*(b종류수+1)입지 않아도 되는 경우의 +1
print(day-1)#의상 무조건 입어야하니까 아무것도 안입는 경우의수 뺴주기