티스토리 뷰
728x90
반응형
문제

programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
코드
from collections import Counter
def solution(clothes):
answer = 1
list = []
for i,j in clothes:
list.append(j)
list = Counter(list)
for i in list.values():
answer *= (i + 1)
return answer - 1
clothes는 [[의상의 이름, 의상의 종류], ...] 로 이루어져있다. 의상의 종류가 같은 것 끼리 모아서 경우의 수를 구해 서로 곱해주면 된다.
clothes에 두번째 값이 옷의 종류이기 때문에 옷의 종류를 Counter 함수를 이용해 갯수를 세주고 Counter.values()로 갯수를 구해 곱해주면 된다.
부위 별로 있는 옷의 갯수를 다 곱해주면 되는데 부위별로 안입는 경우의 수 도 있기 때문에 (얼굴 갯수 + 1) * (상의 갯수 + 1) 갯수에 +1을 더해서 서로 곱해주면 된다.
그런데 모두 벗고 있는 경우는 제외시킨다고 했으니 전체 값에서 -1을 해주면 된다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level2, 카펫 (Python) (0) | 2021.05.06 |
---|---|
[프로그래머스] Level3, 2 x n 타일링 (Python) (0) | 2021.05.05 |
[프로그래머스] Level2, 다음 큰 숫자 (Python) (0) | 2021.05.02 |
[프로그래머스] Level2, 기능 개발 (Python) (0) | 2021.05.02 |
[프로그래머스] Level2, 주식가격 (Python) (0) | 2021.04.30 |