개발 연습장/백준 문제풀이

[파이썬, Python] 백준 9375: 패션왕 신해빈

LooanCheong 2023. 6. 19. 10:20
반응형

문제

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

 

9375번: 패션왕 신해빈

첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로   (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

t = int(input())
for i in range(t):
    ans = 1
    clothes = dict()
    n = int(input())
    
    for i in range(n):
        _, a = input().split()
        if a not in clothes:
            clothes[a] = 0
        clothes[a] += 1
        
    cnt = list(clothes.values())
    
    for i in cnt:
        ans *= i+1
        
    print(ans - 1)

설명

우선 반복값을 입력받아주고 반복 횟수만큼 반복문을 돌려준다.

옷의 종류를 dict로 받아주어 개수를 관리하기 편하게 했다.
이때, 옷의 이름은 크게 중요하지 않으므로 '_'로 입력을 받아주었다.
입력받은 종류가 dict에 없다면 dict에 목록을 생성해 주고,
이미 있다면 값을 1 늘려준다.

그리고 입력받은 밸류만 따로 모아서 리스트로 만들어주었다.

경우의 수를 구하는 방법인데 각 종류의 옷의 개수에 1을 더해주어서 각각 곱해주었다.
이는 옷을 1개씩 고르는 경우와 아무것도 고르지 않은 경우를 포함해 주기 위함이다.

마지막에 정답을 출력할 때, 1을 빼주었는데
이는 아무것도 고르지 않은 경우를 빼주었다.

반응형