[백준] 9375번 패션왕 신해빈(python)

마뇽미뇽·2025년 8월 20일
0

알고리즘 문제풀이

목록 보기
156/165

1. 문제

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

2. 풀이

  • 테스트 횟수 입력
  • 옷 이름과 종류이므로 키 밸류 형태의 딕셔너리 선언
  • 반복 횟수 입력
  • 이름과 종류 입력
  • 이미 있는 종류라면 → 리스트에 이름 추가하고 없는 종류라면 새로운 리스트 생성 후 등록
  • 딕셔너리를 조회하며 각각 타입의 옷을 벗은 경우도 포함하기 위해 + 1을 한 전체 길이를 곱함
  • 모든 타입의 옷을 벗은 (알몸) 인 경우를 제외해야하기 때문에 -1을 한 후 출력

3. 코드

import sys

t = int(sys.stdin.readline())

for _ in range(t):
    fashion = {}
    n = int(sys.stdin.readline())
    for _ in range(n):
        name,type = sys.stdin.readline().split()
        # 해당 종류를 이미 가지고 있다면
        if type in fashion:
            # 추가해줌
            fashion[type].append(name)
        else:
            fashion[type] = [name]
    # 경우의 수를 구할때 곱을 사용하므로 0이 들어가면 안됨
    cnt = 1
    for i in fashion:
        # 해당 타입의 옷을 안 입은 것도 포함시켜야함
        cnt *= (len(fashion[i]) + 1)
    # 알몸인 경우를 제외함
    print(cnt - 1)
profile
Que sera, sera

0개의 댓글