0) 문제 유형 파악: 완전 탐색 문제
1) weights의 길이만큼 i번 반복 (for문)
2) weights에서 i+1개의 조합을 생성
3) 각각의 조합의 합을 구함
4) 합이 가방의 무게 m과 일치하는 것만 필터한다.
5) 필터된 리스트의 길이(가방을 채울수 있는 경우의 수)를 answer에 더한다.
6) 반복이 끝나면 answer를 리턴!
from itertools import combinations
def solution(m, weights):
answer = 0
for i in range(len(weights)):
answer += len(list(filter(lambda x: x == m, map(sum, combinations(weights, i + 1)))))
return answer