문제 풀이/Programmers
[python3][level 2] 위장
[잉간]
2019. 3. 28. 11:04
완주하지 못한 선수에서 사용한 collections.Counter로 의상의 종류에 속하는 원소의 개수를 딕셔너리 형태로 저장한다.
의상의 종류가 겉옷, 상의, 하의가 있을 때 경우의 수를 구하는 공식은 (겉옷의 개수) * (상의의 개수) * (하의의 개수)이다.
그러나 이 공식은 각각의 옷을 최소 1개씩 입었을 상황이기 때문에 입지 않았을 때의 상황도 고려해 각각 1을 더하여 곱한다.
그러면 아무것도 입지 않는 경우의 수도 생긴다. 하지만 스파이는 최소 한 개의 의상을 입기 때문에 1을 빼 반환한다.
문제풀이
import collections def solution(clothes): ans = 1 lst = collections.Counter([x for i,x in clothes]) for i in lst: ans *= lst[i] + 1 return ans - 1