출처: 백준 9375번 패션왕 신해빈
입력으로 주어지는 의상들을 종류별로 분류하고, 알몸이 아닌 조합을 구하면 되는 문제이다.
(dictionary
를 이용해서 분류하면 의상 종류를 검색하는 데 시간을 줄일 수 있다.)
의상들을 모두 분류하고 나서, 종류별 의상의 개수들에 1을 더해 곱하고 한 개를 빼주면 된다.
(마지막에 한 개를 빼주는 이유는 알몸인 조합을 빼주는 것이다.)
case = int(input())
for _ in range(case):
n = int(input())
cloth = {}
kinds = []
for _ in range(n):
name, kind = map(str,input().split())
if kinds.count(kind):
temp = cloth[kind]
temp.append(name)
cloth[kind] = temp
else:
kinds.append(kind)
cloth[kind] = [name]
result = 1
for i in kinds:
result *= (len(cloth[i])+1)
print(result-1)
조합을 구하는 것은 굉장히 단순하지만, dictionary
활용에 익숙해지기 위해서 다시 한번 정리하였다.