효율적인 iteration을 만드는데에 이용됨. 필자는 이를 "사탕 담기"라는 문제를 푸는 데에 이용하였는데, 이는 조합을 이용해서 가지고 있는 사탕 만큼 for문을 돌려서 모든 사탕에서 나올 수 있는 경우의 합을 구했다.
from itertools import combinations
for i in range(len(weights)):
all_count = map(sum, combinations(weight, i)
for j in all_count:
if j == m:
answer += 1
all_count 는 만약 i가 1일 경우에는 조합에서 1개의 list로만 구성된 list가 쭉 나올 것이고, sum을 했을 때는 각각의 list에 value가 1개 밖에 없으므로, 1개를 합친 것 들로만 나올 것이다.
2개면 2개 합친 값이 나올 것이다. 이런식으로 경우를 전부 다 계산해야 해서 조금 비효율 적이지만 이 방법밖에 생각 나지 않았다.