Coding Test/프로그래머스

[프로그래머스 42578번] 위장

Lucian_Cho 2020. 12. 19. 17:13

# 문제

 

 


내 풀이 - 문제 풀이 실패, 지향할 답안
def solution(clothes):
    answer = 1
    
    # dictionary 형태로 재구성
    c_dict = {}
    for val, key in clothes:
        if key in c_dict.keys():
            c_dict[key].append(val)
        else:
            c_dict[key] = [val]
    
    # 안 입은 경우의 수를 포함해서 옷의 종류 별 개수들을 각각 곱함
    for val in c_dict.values():
        answer *= (len(val) + 1)
    
    return answer - 1  # 하나도 안 입은 경우의 수를 빼고 반환

 

주목할 점
 Dictionary 자료형의 Value 값을 List 재구성하는 방법을 도저히 모르겠었는데 다른 분의 답안을 보며 터득할 수 있었다. 경우의 수도 조합을 사용하며 너무 복잡하게 생각했는데, 조금의 아이디어로 간단히 계산한 방법을 기억하자.