algorithm/프로그래머스 문제

[LV2]위장

장경훈 2022. 7. 13. 11:21
[LV2]위장 문제링크
스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다.
예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입

www.programmer.co.kr

 

문제 해설

 

이 문제는 같은 종류의 물건들을 제외한 조합 경우의수를 생각해보면 되는데 우선 같은 종류의 옷을 딕셔너리에 정리한 후 

경우의수 구하는 공식인 *(n+1)을 해주면 모든 경우의 수가 나오게 된다. 여기서 마지막 -1은 아무 옷도 안입고 있을때를 의미한다. 

def solution(clothes):
    answer = 1
    match={} #옷의 종류와 이름을 저장할 딕셔너리
    for value,key in clothes: #딕셔너리에 옷의 종류와 이름 정리
        if key in match:
            match[key].append(value)
        else:
            match[key]=[value]
        
    for key in match.keys(): #각각의 옷이 몇개있는지 확인하여 경우의수 계산
        answer*=(len(match[key])+1)
    answer-=1 #아무것도 안입는 경우를 제외
    return answer

 

Key point

 

  • 경우의수 구하는 공식인 *(n+1)을 떠올릴 수 있어야 한다.
  • 딕셔너리를 사용하여 종류에 따른 옷을 분류할 수 있어야 한다

'algorithm > 프로그래머스 문제' 카테고리의 다른 글

[프로그래머스 LV2] 카펫  (0) 2022.07.14
[프로그래머스 LV2] 튜플  (0) 2022.07.14
[LV2]전화번호 목록  (0) 2022.07.13
[LV2]조이스틱  (0) 2022.07.12
[LV2]타겟 넘버  (0) 2022.07.11