python itertools

황동준·2021년 4월 20일
0

itertools

효율적인 iteration을 만드는데에 이용됨. 필자는 이를 "사탕 담기"라는 문제를 푸는 데에 이용하였는데, 이는 조합을 이용해서 가지고 있는 사탕 만큼 for문을 돌려서 모든 사탕에서 나올 수 있는 경우의 합을 구했다.

itertools.combinations

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개 합친 값이 나올 것이다. 이런식으로 경우를 전부 다 계산해야 해서 조금 비효율 적이지만 이 방법밖에 생각 나지 않았다.

profile
부담없이 기록하기

0개의 댓글