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 - 1clothes는 [[의상의 이름, 의상의 종류], ...] 로 이루어져있다. 의상의 종류가 같은 것 끼리 모아서 경우의 수를 구해 서로 곱해주면 된다.
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 |