[BOJ/python] 9375: 패션왕 신해빈

songeunm·2024년 9월 27일

PS - python

목록 보기
11/62
post-thumbnail

문제

✔️ silver 3
수학
자료 구조
조합론
해시를 사용한 집합과 맵

문제 흐름

이 문제에서 확인해야할 점은 해시, 조합 정도겠다.
경우의 수를 조금만 생각해본다면 금방 풀 수 있다.

  1. 옷 정보를 저장할 딕셔너리 closet을 생성한다.
  2. 옷의 이름name과 종류category를 입력받고 closetcategory와 그 수를 카운트해서 저장하되 시작은 1(= 해당 종류 중 아무것도 입지 않는 경우의 수)로 시작한다.
  3. closet의 모든 value를 곱한다. (= 아무 것도 입지 않는 경우를 포함해 모든 조합의 경우의 수)
  4. 3.에서 구한 값에서 -1( = 아무 것도 입지 않는 경우의 수)를 해준다.

코드

# 패션왕 신해빈
# hash

import sys
input = sys.stdin.readline

if __name__ == "__main__":
    t = int(input())
    for _ in range(t):
        n = int(input())
        closet = {}
        for i in range(n):
            name, category = input().split()
            # 착용하지 않는 경우의 수 +1
            closet[category] = closet.get(category, 1) + 1
        
        answer = 1
        for key, item in closet.items():
            answer *= item
        
        # 모든 의상을 입지 않는 경우의 수 -1
        print(answer-1)

마무리

해시도 물론 이용되긴 하지만 뭔가 중학교..?때 배웠던 순열, 조합, 경우의 수.. 이런게 더 떠오르는 문제였다.

profile
데굴데굴 구르는 개발자 지망생

0개의 댓글