곰퓨타의 SW 이야기

[프로그래머스 level3 최고의 집합] 수학 응용하기 본문

TIL/프로그래머스

[프로그래머스 level3 최고의 집합] 수학 응용하기

곰퓨타 2021. 9. 27. 14:17

해결해야하는 문제는 다음과 같았다.

https://programmers.co.kr/learn/courses/30/lessons/12938?language=python3 

 

코딩테스트 연습 - 최고의 집합

자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만

programmers.co.kr

 

 

아이디어는 다음과 같다.

 

 

아이디어를 바탕으로 작성한 코드는 다음과 같다.

def solution(n, s):
    answer = []
    if s//n == 0 :
        return [-1]

    for i in range(n):
        ans = s//(n-i)
        answer.append(ans)
        s -= ans

    answer.sort()
    return answer
Comments