개발공부/algorithm

[프로그래머스][python] 위장 - Hash

so.py 2021. 4. 17. 21:24
 

코딩테스트 연습 - 위장

 

programmers.co.kr

나의 접근

  1. 딕셔너리에 각 key가 등장할 때 마다 값을 increment 해준다.
    1. 일반 딕셔너리로는 key가 존재하지 않는 경우에 대해 새로운 key를 추가해주고, 존재하는 경우에 대해 +1 시켜줘야한다.
    2. Defaultdict를 사용하면 이러한 예외처리를 해주지 않아도 된다.
  2. 딕셔너리에서 각 key의 count수에 대한 경우의 수를 곱해준다.
  3. 전체 count에서 아무것도 안입은 경우 하나를 빼준다.
from collections import defaultdict #1 

def solution(clothes):
    wardrobe = defaultdict(int)
    for i in clothes:
        key = i[1]	#1
        wardrobe[key] += 1 	#1
    
    count = 1
    for i in wardrobe.values():	#2
        count = count * (i + 1)
    
    return (count - 1)	#3