코딩테스트/알고리즘

99클럽 코테 스터디 6일차 TIL + 의상

Porits789 2024. 7. 28. 10:22

오늘의 학습 키워드: 수학

문제: 의상

https://school.programmers.co.kr/learn/courses/30/lessons/42578

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

오늘의 풀이는 다음 글을 참고하여 진행했습니다.

https://school.programmers.co.kr/questions/33347

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이걸 이렇게 생각할 줄은 몰랐습니다..

경우의 수를 따지는데

2개 종류: (a+b) + (ab)

3개 종류: (a+b+c) + (ab+bc+ca) + (abc)

이렇게 표현이 되고, 이걸 n차식의 계수의 합과 연결 지어 생각합니다.

=> (x+a)(x+b)(x+c) = x3 + (a+b+c)x2 + (ab+bc+ca) x + (abc)

x에 1을 넣으면 위의 3개 종류의 식이 되는 방식입니다.. 물론 x3으로 인해서 -1을 해줘야 합니다.

따라서 종류의 개수는 (1+a)(1+b)(1+c)로 표현 가능합니다

def solution(clothes):
    ans =1
    clodict= {}
    
    for i in clothes:
        clodict[i[-1]] =0
        
        
    for k in clothes:
        clodict[k[-1]]+=len(k[:-1])
        
    for h in clodict.values():
        ans = (h+1)*ans


    return ans-1

 

회고

수학적인 방법 말고 다른 방법으로도 풀이해 봐야겠습니다.

내일 학습할 것.

밀린 복습..?