Algorithm Study/Python

[백준 파이썬] # 9375 패션왕 신해빈

728x90
반응형

Silver III

# 9375 패션왕 신해빈

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

 

9375번: 패션왕 신해빈

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

www.acmicpc.net

 

풀이

T = int(input())

for i in range(T):
    n = int(input())
    cloth = {}

    for j in range(n):
        name, kinds = input().split()
        if kinds in cloth:
            cloth[kinds].append(name)
        else:
            cloth[kinds] = [name]

    c_li = []

    for i in cloth.values():
        c_li.append(len(i))

    if len(c_li) == 1:
        print(c_li[0])

    else:
        a = 1
        for i in c_li:
            a *= (i+1)
        print(a-1)

 

후기

  • dictionary 자료형을 이용해 종류에 따라 착장 가능한 옷을 리스트에 추가시켰다.
  • if 문 : 옷의 종류가 한 가지일 때는 해당 개수를 출력
    else 문 : 옷 종류가 여러개 일 경우 착장 가능한 조합은 n*m - 1 가지이다.

  • n가지 착용 * m가지 착용 * l가치 착용.. - 1(아무것도 착용하지 않은, 알몸의 상태)