1. 문제와 예제
(문제링크: https://www.acmicpc.net/problem/9375)
2. 전체 코드
import sys
input = sys.stdin.readline
# 입력 받기
t = int(input().rstrip()) # 테스트 케이스 수
for _ in range(t):
n = int(input().rstrip()) # 의상 수
dct = {}
for _ in range(n):
# ex. dct = {'headgear': 2, 'eyewear': 1}
name, type = input().split() # 의상 이름, 종류
if type in dct:
dct[type] += 1
else:
dct[type] = 1
res = 1
for k, v in dct.items():
res *= (1+v)
res -= 1
# 결과 출력하기
print(res)
3. 코드 해설
우리는 옷의 종류 각각에 대한 개수만 필요하므로 dct 구조로 바꿨고 value에 개수가 들어가도록 했다. 그 후 정답이 나오는 규칙을 찾아 코드로 작성했다.
'백준' 카테고리의 다른 글
[백준] 11659번 파이썬 (구간 합 구하기 4) (0) | 2024.03.31 |
---|---|
[백준] 9461번 파이썬 (파도반 수열) (0) | 2024.03.29 |
[백준] 9095번 파이썬 (1, 2, 3 더하기) (0) | 2024.03.24 |
[백준] 1003번 파이썬 (피보나치 함수) (0) | 2024.03.23 |
[백준] 17219번 파이썬 (비밀번호 찾기) (0) | 2024.03.23 |