[プログラマー/python]Hashに偽装



https://programmers.co.kr/learn/courses/30/lessons/42578

アルゴリズム分類

  • ハッシュ
  • 問題を解く


    arrayにはいろいろな服装の種類があります.
    これを利用してlstは異なる種類の服装の個数を持つことができる.
    ex) lst=[1,2]
    特定の種類の服を必ず選ぶわけではないので、選ばない場合の数を考慮して、それぞれの場合+1で乗算し、毎日少なくとも1枚の服を着るので、すべての服を着ない1を取り除く.
    (한 옷의 종류수 + 1(안입는경우의수))*(한 옷의 종류수 + 1(안입는경우의수))-(아무것도 안 입는경우의수)

    ソースコード

    def solution(clothes):
        kinds=[]
        for i in clothes:
            name,kind=i
            kinds.append(kind)
        kinds=set(kinds)
    
        array={i:[] for i in kinds}
    
        for i in clothes:
            name,kind=i
            array[kind].append(name)
    
        lst=[]
        for i in array:
            lst.append(len(array[i]))
        
        result=1
        for i in lst:
            result*=(i+1)
    
        return (result-1)