I about me

[Python] 의상 본문

Algorithm/프로그래머스

[Python] 의상

ssungni 2024. 4. 15. 23:43

문제

문제를 보고 어이가 없었다... 얘는 하의도 안 입음..?ㅋㅋ 

그러나 뭐 어쩌겠는가 풀어야지...!

사실 이 문제를 보고 처음 생각이 든 것은 Permutation과 Combination이다.

그래서 해당 메소드를 사용하려고 아등바등했는데.... 아니었다... 자 그래서 천천히 오답정리 가보자!

 

일단 해당 문제에서 입출력 예시는 다음과 같이 나와 있다.

아오!! headgear와 face 같은 "종류"를 나타내는 것들이 2번째로 가 있는게 화가 났다... 

그말 즉슨 나보고 딕셔너리로 정리하라는 뜻?

 

그렇다... 또 해야지 뭐,,,

closet = {}
for name, kind in clothes:
    if kind in closet.keys():
        closet[kind] += [name]
    else:
        closet[kind] = [name]

이렇게 그 종류가 있어? 있으면 그 디테일한 이름만 들어오고, 없어? 없으면 종류하고 디테일한 이름까지 넣어!

이렇게 코드를 작성해주었다!

 

그런데... 난 경우의 수가 이해가 안 갔다...  그래서 챗gpt와 여러 블로그의 도움으로  이해를 해보았다!

역시 사람은 손을 써야지 이해한다는 진실을 마주하며... 결론은!!

def solution(clothes):
    # 1. 딕셔너리로 {종류 : 종류에 따른 디테일}
    closet = {}
    for name, kind in clothes:
        if kind in closet.keys():
            closet[kind] += [name]
        else:
            closet[kind] = [name]
    
    # 2. 경우의 수 표현해주기
    answer = 1
    for i in closet.values():
        answer *= (len(i) + 1)
    return answer - 1

 

오예! 끝끝!!