![]() |
[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 |