728x90
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
res = 1
cloth = {}
for _ in range(n):
name, type = sys.stdin.readline().split()
if type not in cloth:
cloth[type] = 1
else:
cloth[type] += 1
for i in cloth: #1
res *= cloth[i]+1 #2
print(res-1) #3
문제에선 1개의 옷만 걸치면 해빈이는 밖을 돌아다닐 수 있다.
각 옷가지의 type에 그 type의 옷을 입지 않는 경우 +1을 해주고 마지막에 모든 옷가지의 type을 입지 않는 경우인 알몸인 경우를 -1해준 결과를 출력하면 된다.
상의 2개, 하의 3개라면 상의 2개를 입는 경우와 입지 않는경우 1가지 경우가 있어 3가지의 경우가 있고,
하의 3개를 입는 경우와 입지 않는경우 1가지가 있어 4가지가 된다.
그래서 3*4 =12가 되는데 알몸인 경우를 빼주어서 11가지가 된다.
#1 : 반복변수 i는 해시 cloth의 key를 의미한다
#2 : cloth[i]는 해시의 value를 의미하므로 +1해서 res에 곱해준다
#3 : 모든 옷을 입지 않을 경우를 빼주어서 출력
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 1620 파이썬(python) : 나는야 포켓몬 마스터 이다솜 (0) | 2022.06.17 |
---|---|
[백준] 14425 파이썬(python) : 문자열 집합 (0) | 2022.06.17 |
[백준] 1874 파이썬(python) : 스택 수열 (0) | 2022.06.17 |
[백준] 4949 파이썬(python) : 균형잡힌 세상 (0) | 2022.06.17 |
[백준] 9012 파이썬(python) : 괄호 (0) | 2022.06.17 |