프로그래머스 Lv.2 의상

2024. 7. 10. 10:01알고리즘문제 풀이/프로그래머스

문제 링크

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

 

풀이

dictionary 기능을 이용한다.

clothDict는 key값은 옷의 종류이고 value값은 옷의 종류 별 해당하는 옷의 수를 나타내는 딕셔너리이다.

clothDict = {옷의 종류1: 갯수1, 옷의 종류 2: 갯수2, ... }

총 옷을 입는 경우의 수 = (갯수1 + 1) * (갯수2 + 1) * ... *(갯수n + 1) - 1

각각의 갯수의 1을 더하는 이유는 해당 옷의 종류를 안 입는 경우까지 합산한 것이다.

맨 마지막에 1을 뺀 이유는 모든 옷을 입지 않은 경우는 제외한 것이다.

 

전체 코드

def solution(clothes):
    answer = 1
    clothDict = {}
    for name, kind in clothes:
        if kind in clothDict:
            clothDict[kind] += 1
        else:
            clothDict[kind] = 1
    
    countList = list(clothDict.values())
    for count in countList:
        answer *= count + 1
    answer -= 1
    return answer