본문 바로가기
Algorithms

백준 9375. 패션왕 신해빈

by Brian Go 2022. 6. 13.

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

 

9375번: 패션왕 신해빈

첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로   (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.

www.acmicpc.net

간단한 경우의 수 문제. 각 카테고리의 옷들에 대해서 경우의 수를 따져주면 되는데, 모든 옷을 따로 입는 게 아닌 동시에 입는 것이기 때문에 곱의 법칙을 이용해야 한다.

다만 그냥 곱하는 건 안 되고, 해당 카테고리의 옷을 입을 수도 안 입을 수도 있기 때문에 각 카테고리마다 +1을 해준 값을 곱하고, 문제에서 알몸이 아닌 경우를 뽑아야 되기 때문에 전체 경우의 수에서 아무것도 입지 않은 경우 -1 를 해주면 된다.

 

import math

def combination(n, r):
	return int(math.factorial(n) // (math.factorial(n - r) * math.factorial(r)))

n = int(input())
for i in range(n):
	d = {}
	res = 1
	m = int(input())
	for j in range(m):
		item, category = input().split()
		if d.get(category) == None:
			d[category] = 1
		else:
			d[category] += 1
	for i in d.keys():
		res *= (d[i] + 1)
	print(res - 1)

딕셔너리를 이용해서 각 요소를 카운트하고, 반복문을 돌면서 모든 경우의 수 + 1 을 곱해줬다.

마지막에는 -1을 통해서 마무리.

'Algorithms' 카테고리의 다른 글

백준 2004. 조합 0의 개수  (0) 2022.06.15
백준 1676. 팩토리얼 0의 개수  (0) 2022.06.14
백준 1010. 다리 놓기  (0) 2022.06.12
백준 11051. 이항 계수 2  (0) 2022.06.11
백준 11050. 이항 계수 1  (0) 2022.06.10

댓글