[프로그래머스] lv.2 의상

Jenny·2023년 9월 7일
0

ProblemSolving

목록 보기
14/14
post-thumbnail

문제

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

정답

from collections import Counter
def solution(clothes):
    clothes_dic = Counter([clothe[1] for clothe in clothes]) 
    count = 1
    # clothes_dic = {'headgear': 2, 'eyewear': 1}
    for stock in clothes_dic.values(): # 각 종류의 옷의 개수를 가져온다. 
        count = count*(stock +1) # 안입는 경우 +1를 더해준다. 
    print(count-1) # 아무것도 안입는 경우를 빼준다.
    return count-1
solution([["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]])

풀이

만약 상의: a,b 하의: c,d 이렇게 아이템이 있을 경우 경우의 수는 아래와 같다.
1. a
2. b
3. c
4. d
5. a,c
6. a,d
7. b,c
8. b,d

그리고 이것은 다시 생각해보면, 상의: a,b,착용x / 하의: c,d,착용x 로 볼 수 있다.
하지만 착용x,착용x인 경우는 제외해줘야 하므로, 3*3-1을 하면 된다.

profile
Developer로의 여정

0개의 댓글