반응형
프로그래머스
해시
경우의 수를 고려.
만일, 모자 카테고리에 2개의 아이템이 있을 경우 (1) 모자1을 착용하거나 (2) 모자2를 착용하거나 (3) 둘 다 착용하지 않거나 총 3가지의 경우의 수가 있다.
(각 카테고리의 길이+1)을 모두 곱하면 옷을 입거나 입지 않는 경우의 수가 모두 출력.
하지만 적어도 하나의 카테고리의 옷은 입어야 하기에 마지막에 -1을 해준다.
from collections import defaultdict
def solution(clothes):
answer = 1
dic = defaultdict(list)
for i in clothes:
dic[i[1]].append(i[0])
#defaultdict(<class 'list'>, {'headgear': ['yellow_hat', 'green_turban'], 'eyewear': ['blue_sunglasses']})
for k in dic:
answer *= len(dic[k])+1
answer -= 1
return answer
Conter함수를 이용해서 푸는 방법.
def solution(clothes):
from collections import Counter
from functools import reduce
cnt = Counter([kind for name, kind in clothes])
answer = reduce(lambda x, y: x*(y+1), cnt.values(), 1) - 1
return answer
반응형
'DS > Coding Test' 카테고리의 다른 글
[Python] 숫자 찾기 (0) | 2023.05.19 |
---|---|
[Python][BFS] 아이템 줍기 (0) | 2023.05.19 |
[Python][Greedy][BFS] 조이스틱 (0) | 2023.05.19 |
[Python] 튜플 (0) | 2023.05.19 |
[Python] 간단한 식 계산하기 (0) | 2023.05.19 |