from collections import Counter
t = int(input())
for _ in range(t):
n = int(input())
arr = []
for i in range(n):
a, b = input().split()
arr.append(b)
res = Counter(arr)
num = 1
for k in res: # res = { headgear : 2 , eyewear : 1 } , { face : 3 }
num *= res[k] + 1
print(num - 1)
첫번째 경우의 규칙을 살펴 보면
(hat, sunglasses) (turban, sunglasses) (hat) (turban) (sunglasses)
5가지
headgear : 2
eyewear : 1
하나씩만 입을 수도 있으므로
공식 : (의상 종류 + 1) * (의상 종류 + 1) - 1
+1 하는 이유는 안 입을 수도 있으므로 곱할 때 더해준다
그래서 제일 마지막에 아예 안입은 경우를 -1 해준다
'알고리즘' 카테고리의 다른 글
[백준] 11727번 (python 파이썬) (0) | 2022.07.06 |
---|---|
[백준] 9461번 (python 파이썬) (0) | 2022.07.05 |
[백준] 17219번 (python 파이썬) (0) | 2022.07.03 |
[백준] 1003번(python 파이썬) (0) | 2022.06.29 |
[백준] 1436번(python 파이썬) (0) | 2022.06.26 |