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)을 떠올릴 수 있어야 한다.
- 딕셔너리를 사용하여 종류에 따른 옷을 분류할 수 있어야 한다