viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec84fa11d0283195504478ca9b7677dc322d30c9349b456bc3b617550c054ce48860111a48e989c032940599550abf9a1acc28dde28079c88ffe4bfaf0



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec84fa11d0283195504478ca9b7677dc322d30c9349b456bc3b617550c054ce48860111a48e989c032940599550abf9a1a9025d4e2d12e7254f509128a




중복순열 문제와 거의 같은데

중복을 허용하는 가지는

뻗지 못하도록 조건을 주면 된다


먼저 뽑은 횟수가 말단노드에 왔을때

출력하는 조건문을 주고


가지가 여러개니까

1부터 N까지 포문안에서 재귀함수가 실행되는데


매 가지를 뻗을때 마다

ch[i]에 그 숫자를 사용했는지 체크해주면

다음 재귀함수를 돌때 체크한 원소는 제외하고 돌 수 있다


부모노드에서 조건문에 들어올려면 

다시 초기화를 해줘야하는데


높은레벨의 재귀함수를 빠져나와서 

낮은레벨의 재귀함수로 들어갈때


다시 chk[i]를 0으로 초기화 해준 뒤에 

이전 노드의 재귀함수를 돈다


꿈★은 이루어진다

내일채움공제 되는 중소기업 가자 화이팅!