- 처음에는
answer
를 초기값으로 len(clothes)
두고 시작했었는데, 이때의 조합을 구하려면 전부 곱셈을 해야 하기 때문에 반복문을 돌면서 그 타입의 종류를 하나씩 더해주었다. 이렇게 적고 보니 len(clothes)
는 당연히 틀렸네. 중복이 들어가 있으니까
Solution
import collections
from typing import List
def solution(clothes: List[List[str]]) -> int:
# answer에 곱해줘야 하니 1로 설정
answer = 1
type_name_map = collections.defaultdict(int)
for c in clothes:
current_type = c[1]
type_name_map[current_type] += 1
# 하나만 입는 경우
ONLY_ONE = 1
for current_name in type_name_map.values():
# 경우 조합 -> 전부 곱하면 나옴
answer *= current_name + ONLY_ONE
# 처음에 answer를 1로 설정해 주었으니 1 빼주기
return answer - 1
print(solution([["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]))
print(solution([["crow_mask", "face"], ["blue_sunglasses", "face"], ["smoky_makeup", "face"]]))
Reference
Leave a comment