Coding Test
[프로그래머스] 위장
상상쓰
2021. 6. 24. 17:38
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
처음에는 combinations 를 이용하여 풀었는데 시간 초과가 났다. 다시 보니, 조합을 이용할 필요가 없었다.
headgear 가 3가지 종류가 있다면 headgear 를 안 쓰는 조건까지 추가하여 4가지로 계산한다. 최소한 한 개 이상의 의상은 입으므로 최종적으로 계산된 answer 에서 아무것도 안 입는 경우인 1을 빼주면 된다.
from collections import defaultdict
def solution(clothes):
answer = 1
dic = defaultdict(int)
for i in clothes:
dic[i[1]] += 1
N = len(dic.keys())
for i in dic.keys():
answer *= dic[i] + 1
return answer - 1
print(solution([['yellowhat', 'headgear'], ['bluesunglasses', 'eyewear'], ['green_turban', 'headgear']])) # 5