[프로그래머스] 위장 Python

Min-Jae Song·2021년 4월 19일
0

코테

목록 보기
3/10
post-thumbnail

출처 : 프로그래머스 - 위장(level 2)

체감 난이도 : 문제를 이해하면 쉬움
문제해결 핵심 : 경우의 수를 묻는 문제인 걸 캐치해야한다.

고등학교 문제로 나왔다면 쉽게 경우의 수를 떠올렸겠지만 코테로 이런 문제를 보니 뭔가 해시로 뭘 하는거 같은 느낌만 받았다.

실제로는 간단한 경우의 수 문제라는걸 빨리 알아차려야한다.

우선, 목걸이 신발 모자 등등 옷의 종류를 해시로 저장한다.
이후에는 경우의 수를 계산해야하는데 이 문제를 쉽게 설명하면

서로 다른 바구니에서 하나씩(0개 포함) 뽑는 경우의 수 - 1
( -1을 해준 이유는 모두 안뽑을 경우 1개 제외한 것)

이렇게 보면 매우 간단해진다. 목걸이, 신발, 모자는 서로 독립적인 집합으로보고 한 집합에서는 두개이상의 물건을 동시에 사용할 수 없으므로 하나씩 뽑는 (혹은 하나도 안뽑는) 경우의 수를 계산한다.

정답 : (목걸이갯수 + 1)(신발갯수 + 1)(모자갯수 +1) -1


구현쪽으로 참고할 점은 거의 없고 옷의 종류를 dictionary형태로 만든 뒤 이름이 아닌 갯수를 저장한다. 그 후 keys()를 순회하면서 result *= (각key의 value +1) 정도로 계산하면 끝
profile
개발세발스토오리

0개의 댓글