티스토리 뷰
완주하지 못한 선수에서 사용한 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
'문제 풀이 > Programmers' 카테고리의 다른 글
[python3][level 3] 베스트앨범 (0) | 2019.04.04 |
---|---|
[python3][level 3] 타일 장식물 (0) | 2019.03.29 |
[python3][level 2] 전화번호 목록 (0) | 2019.03.27 |
[python3][level 1] 완주하지 못한 선수 (0) | 2019.03.25 |
[python3][level 1] 정수 내림차순으로 배치하기 (0) | 2018.07.13 |
댓글