영호

[백준] 9375 패션왕 신혜빈 (Python) 본문

Algorithm

[백준] 9375 패션왕 신혜빈 (Python)

0h0 2022. 5. 21. 15:54

문제 링크

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

 

나의 풀이

옷을 입을 때 한 종류에서 하나의 옷 밖에 입을 수 없고, 옷의 이름들은 중복해서 주어지지 않기 때문에 저는 defaultdict(int)를 이용하여 문제를 해결했습니다.

  • clothes[category] += 1 을 이용하여 해당 옷 종류에 몇 개의 옷들이 주어졌는지 기록을 합니다.
    • 아래 예제의 첫 번째 입력을 보면 headgear라는 종류에 hat, turban 2가지 옷이 들어왔고, eyewear종류에 sunglasses 1가지 옷이 들어왔습니다. 이를 defaultdict로 표현하게 되면 아래와 같습니다.
{'headgear' : 2, 'eyewear' : 1}
  • 입을 수 있는 옷들의 조합을 구합니다.
    • 우선 headgear의 경우 2가지의 옷이 있지만 해당 옷을 입지 않는 경우도 생각을 해야 합니다. 그렇기 때문에 3c1 -> 3이 됩니다.
    • 위와 마찬가지고 eyewear는 2c1 -> 2
    • 옷을 하나도 안입을 수는 없기 때문에 아무것도 입지않는 경우의 수는 1번 밖에 없기 때문에 -1 을 해줍니다.

 

예제 입력

2   // 전체 testcase num
3   // 해당 testcase에서 주어지는 옷의 개수
hat headgear   // 옷 이름, 종류
sunglasses eyewear
turban headgear
3
mask face
sunglasses face
makeup face

 

Code

# https://www.acmicpc.net/problem/9375
# 패션왕 신혜빈

from collections import defaultdict

test_num = int(input())

for _ in range(test_num):
    n = int(input())
    answer = 1
    clothes = defaultdict(int)
    for _ in range(n):
        name, category = input().split()
        clothes[category] += 1

    for key, value in clothes.items():
        answer *= clothes[key] + 1


    print(answer-1)

Git

https://github.com/youngh0/Algorithm/blob/master/data-structure/boj_9375.py

'Algorithm' 카테고리의 다른 글

[알고리즘] 정다면체 (Python)  (0) 2022.06.10
Comments