[프로그래머스 파이썬] 의상

일단 해볼게·2024년 1월 31일
0

프로그래머스

목록 보기
94/106

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

def solution(clothes):
    dic = {}
    answer = 1
    
    for i in range(len(clothes)):
        if clothes[i][1] in dic: # 키가 있으면 리스트에 추가
            dic[clothes[i][1]].append(clothes[i][0])
        else:
            dic[clothes[i][1]] = [] # 키가 없으면 리스트 만들고 추가
            dic[clothes[i][1]].append(clothes[i][0])
            
    
    for j in dic: # j는 키 값
        # 키에 따른 value의 길이 + 1을 answer에 곱한다.
        # + 1은 의상의 종류에서 입지 않는 조합
        answer *= len(dic[j]) + 1 
        
    return answer - 1 # 모든 의상의 종류를 하나도 입지 않는 것을 빼준다. 

<예제 1번>
headgear : 종류가 2가지이다. 미착용한 경우, 첫번째 기어 착용한 경우, 두번째 기어 착용한 경우 -> 3가지 경우의 수
eyewear : 종류는 1가지이다. 미착용한 경우, 첫번째 eyewear 착용한 경우 -> 2가지 경우의 수

총 3 * 2 = 6가지 경우의 수가 있다.

그러나 이 경우의 수 중 headgear, eyewear를 둘 다 착용하지 않은 경우도 있으니 1을 빼준다.

따라서 5가지가 나온다.

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글