티스토리 뷰

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을 해주면 된다.

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30