728x90

시간 초과로 실패했다. while 문을 이용해서 더 쉽게 푸는 방법이 있었는데 생각을 하지 못했다.

from itertools import combinations_with_replacement
 
def multi(list):
    answer = 1
 
    for i in range(0,len(list)):
        answer *= list[i]
 
    return answer
 
 
 
def solution(n, s):
 
    k = [ ]
    answer = [ ]
 
 
    if n>s:
        return [-1]
 
 
    for i in range(1,int(s/2)+2):
        k.append(i)
 
    a = list(combinations_with_replacement(k,n))
 
    count = 0
 
    for i in range(0,len(a)):
        if sum(a[i]) == s and multi(a[i])>count:
            answer.append(a[i])
            count = multi(a[i])
 
 
 
    if len(answer)==0:
        return [-1]
    return answer[-1]
728x90

+ Recent posts