headgear에 해당하는 의상이 yellow_hat, green_turban이고 eyewear에 해당하는 의상이 blue_sunglasses이므로 아래와 같이 5개의 조합이 가능합니다.
1. yellow_hat
2. blue_sunglasses
3. green_turban
4. yellow_hat + blue_sunglasses
5. green_turban + blue_sunglasses
- 같은 종류(face, headgear..)의 의상을 동시에 입을 수 없다
→ 종류별로 한 개 의상만 착용 가능- 최소 한 개 이상의 의상을 입어야 한다
(종류별로 한 개씩 입어야 한다 X)
● 경우의 수 공식으로 접근
● Hash 형태
{'headgear': ['yellow_hat', 'green_turban'], 'eyewear': ['blue_sunglasses']}
def solution(clothes):
answer = 1
hash = {}
for Name, Type in clothes:
if Type not in hash: # hash의 키 값에 Type이 없을 경우
hash[Type] = [Name]
else:
hash[Type].append(Name)
# print(hash) {'headgear': ['yellow_hat', 'green_turban'], 'eyewear': ['blue_sunglasses']}
for i in range(len(hash)):
key_list = list(hash.keys())
value_list = hash[key_list[i]]
answer = answer * (len(value_list) + 1)
return answer - 1