[알고리즘] 프로그래머스 - 최고의 집합

June·2021년 3월 11일
0

알고리즘

목록 보기
139/260

프로그래머스 - 최고의 집합

내 풀이

def solution(n, s):
    if n > s:
        return [-1]
    
    answer = []
    while s:
        answer.append(s//n)
        s = s - (s//n)
        n -= 1
    return answer

곱을 최대로 만들려면 최대한 중앙에 있는 값들을 서로 곱해야 최대가 된다는 점을 이용했다. (표준 편차가 작아야한다. 즉 집합 원소들 간의 차를 최소화해야 한다.). 예를 들어 S가 9이고 n이 3이라면 [3,3,3]이어야 한다. 중앙에 있는 값은 s//n이 되고, 그러면 남은 값들에 대해 계속 진행을 해준다.

0개의 댓글