
✔️ silver 3
수학
자료 구조
조합론
해시를 사용한 집합과 맵
이 문제에서 확인해야할 점은 해시, 조합 정도겠다.
경우의 수를 조금만 생각해본다면 금방 풀 수 있다.
closet을 생성한다.name과 종류category를 입력받고 closet에 category와 그 수를 카운트해서 저장하되 시작은 1(= 해당 종류 중 아무것도 입지 않는 경우의 수)로 시작한다.closet의 모든 value를 곱한다. (= 아무 것도 입지 않는 경우를 포함해 모든 조합의 경우의 수)# 패션왕 신해빈
# hash
import sys
input = sys.stdin.readline
if __name__ == "__main__":
t = int(input())
for _ in range(t):
n = int(input())
closet = {}
for i in range(n):
name, category = input().split()
# 착용하지 않는 경우의 수 +1
closet[category] = closet.get(category, 1) + 1
answer = 1
for key, item in closet.items():
answer *= item
# 모든 의상을 입지 않는 경우의 수 -1
print(answer-1)
해시도 물론 이용되긴 하지만 뭔가 중학교..?때 배웠던 순열, 조합, 경우의 수.. 이런게 더 떠오르는 문제였다.