less than 1 minute read

출처

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

풀이

# 합이 같을때 곱이 가장 크기 위해선
# 최대한 합을 균일하게 자를때가 될것이다.
# 합:8 숫자의수:4, 2+2+2+2 일때 곱이 최강이 된다 (16)!
# 합:9 숫자의수:4, 2+2+2+3 일때 곱이 최강이 된다 (24)!

def solution(n, s):
    divided, remain = s//n, s%n
    
    # divided가 0 이면 자연수를 가지고 합을 구할수 없다.
    if divided == 0:
        return [-1]
    
    answer = [divided]*n
    
    # 마지막원소부터 나머지를 분산해주면 오름차순으로 정렬된 배열을 반환할수 있다.
    for i in range(n-1, n-1-remain, -1):
        answer[i] += 1
    
    return answer

Leave a comment