[프로그래머스] 위장 풀이

 


1. 문제

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

2. 풀이

  • 해시를 사용하면 손쉽게 풀 수 있는 문제입니다.
  • 딕셔너리에 옷 종류를 key로, 옷 이름은 집합 value에 넣어줍니다.
  • 모든 값을 넣고 옷 종류마다 +1 을 해준 값을 정답해 곱해줍니다. (+1은 옷을 안 입는 경우입니다.)
  • -1 한 값을 정답으로 해줍니다(모두 벗은 경우)
def solution(clothes):
    answer = 1
    spy_dic = {}
    for wear, kind in clothes:  # 딕셔너리에 옷 종류를 key로 옷 이름을 집합 value로 넣는다.
        if kind not in spy_dic:
            spy_dic[kind] = set()
        spy_dic[kind].add(wear)

    for kind in spy_dic: # 옷 종류마다 + 1 한 값을 정답에 곱해준다.
        answer *= (len(spy_dic[kind]) + 1)

    return answer - 1