Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dynamic
- github
- Algorithm
- w3school
- Programming
- Unreal Engine 5
- 시작해요 언리얼 2022
- Basic
- Unity
- 기초
- W3Schools
- guide
- loop
- 오류
- c++
- 백준
- python
- UE5
- 프로그래밍
- dfs
- 문제풀이
- parameter
- 재귀
- C#
- 파이썬
- Tutorial
- String
- Class
- DP
- Material
Archives
- Today
- Total
행복한 개구리
백준 22.03.21. 9375번 - 패션왕 신해빈 본문
T = int(input())
items = {}
for i in range(T):
nums = int(input())
for j in range(nums):
name, category = map(str, input().split())
val = []
if category in items.keys():
items[category].append(name)
else:
items[category] = [name]
result = 1
for k in items:
v = items[k]
result *= len(v)+1
print(int(result)-1)
items.clear()
- factorial을 이용한 조합으로 풀어보려했으나 오답처리가 되어 다시 작성했습니다.
- dictionary를 사용한 코드입니다.
- 입력받은 옷의 카테고리를 key로 지정하여 이름을 알맞게 value로서 할당해줍니다.
- 결괏값은 알몸은 아니어야하기 때문에 1로 할당해두었습니다.
- 카테고리 headgear의 옷의 개수가 2, eyewear의 옷의 개수는 1이라고 가정을 한다면
- headgear의 옷을 입을수도, 벗을수도 있으며 eyewear또한 마찬가지입니다.
- 따라서 headgear의 경우의 수는 2+1(벗은 상태)가 됩니다. eyewear도 마찬가지입니다.
- 이것들의 경우의 수는 (headgear의 옷의 개수) * (eyewear의 옷의 개수)가 됩니다.
- 하지만 알몸은 허용되지 않으니 -1을 하여 모두 벗은 경우의 수를 제외해줍니다.
- 경우의 수를 모두 구한 뒤 1을 빼서 출력하면 됩니다.
- 마지막으로 딕셔너리를 clear()하여 초기화해줍니다.
- 이 다음 반복문에서 다시 사용해야하기 때문입니다.
'Algorithm > BaekJoon' 카테고리의 다른 글
백준 22.03.23. 2004번 - 조합 0의 개수 (0) | 2022.03.23 |
---|---|
백준 22.03.23. 1676번 - 팩토리얼 0의 개수 (0) | 2022.03.23 |
백준 22.03.20. 1010번 - 다리 놓기 (0) | 2022.03.20 |
백준 22.03.20. 11051번 - 이항 계수2 (0) | 2022.03.20 |
백준 22.03.20. 11050번 - 이항 계수 1 (0) | 2022.03.20 |