[프로그래머스_42578] 위장 Python 풀이
출처: 프로그래머스
문제
풀이
해시 문제라서 dictionary를 이용하여 풀었습니다.
처음에는 combination을 쓰는 접근을 하였으나 후에 dictionary로 구현하는 것이 더 효율적임을 깨닫게 되었습니다.
dictionary를 이용하여 각각 의상 종류에 따라 수를 구해주었습니다.
그런 뒤에는 경우의 수를 구하는 공식을 사용하였는데,
이 문제의 경우에는 모든 의상 종류를 착용하지 않아도 되기 때문에
각각 의상 종류의 수에 1을 더한 값(해당 의상 종류를 입지 않을 경우)을 answer에 곱해주었습니다.
그 결과는 모든 의상 종류를 입지 않을 경우도 포함하기 때문에 1을 빼준 뒤 return해주었습니다.
코드
from collections import defaultdict
def solution(clothes):
answer = 1
kind_dict = defaultdict(int)
for _, kind in clothes:
kind_dict[kind] += 1
keys = list(kind_dict.values())
for i in range(len(keys)):
answer *= keys[i]+1
return answer - 1
Leave a comment