-> 실패. itertools 을 사용하여 weights 가 15 개인 경우를 계산하려니, 계산량이 엄청남.
무게의 제한을 이용하여, weights 중 가장 무거운 무게부터 넣고 만들 수 있는 방법을 계산.
주의: 모든 사탕이 평균에 가깝게 되면, 의미가 없음.
제일 큰 수를 넣고, 그 다음 크기의 수를 넣고 .. 이런 느낌으로 해보자.
하다가 안풀려서 인터넷 해설을 참고하였다 itertools의 combination을 갯수별로 생성하였다.
그 후 그 조합의 합이 m과 같을 경우, 이를 리스트로 반환하였다.
from itertools import combinations
m = 3000
weights = [500,1500,2500,1000,2000]
answer = []
for i in range(len(weights)):
L = list(combinations(weights,i+1))
for j in L:
if m == sum(j):
answer.append(list(j))