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

유병수·2023년 4월 16일
0

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

자연수 n개로 이루어진 집합 중 합이 s가 되는 집합중 원소들을 다 곱했을 때 곱이 가장 크게 나와야 하는 함수를 뽑아야 하는 문제.

def solution(n, s):
    answer = []
    
    count = s // n
    if count == 0:
        return [-1]
        
    
    answer = [count for _ in range(n)]
    
    left = s % n
    print(left)
    for num in range(n-1,n - left -1,-1):
        answer[num] += 1
    
    return answer

s를 n으로 나눴을때 몫이 0이라면 합으로 나타낼수 없으므로 -1을 리턴
s를 n으로 나눈 나머지들을 고르게 1씩 추가해주면 곱이 최대가 되는 수가 나오게 된다.

0개의 댓글