[프로그래머스] 최고의 집합 _ 문제 풀이

 


1. 문제

https://programmers.co.kr/learn/courses/30/lessons/12938

2. 풀이

숫자의 곱이 가장 크게 하기 위해서는 값들이 균등한 값을 가져야 합니다. s를 n으로 나눈 몫을 모든 수에 할당해주고, 나머지를 1씩 분배해주면 정답을 구할 수 있습니다.

def solution(n, s):
    if s < n:
        return [-1]
    
    answer = [s//n] * n
    for i in range(s%n):
        answer[i] += 1
    return sorted(answer)