본문 바로가기

알고리즘

순열과 조합 직접 개발하기 with yield 간단방법

def combi(arr,r):
    for i in range(len(arr)):
        if r == 1:
            yield [arr[i]]
        else:
            for next in combi(arr[i+1:],r-1):#뒤의것
                yield [arr[i]]+next

def permu(array, r):
    for i in range(len(array)):
        if r == 1:
            yield [array[i]]
        else:
            for next in permu(array[:i]+array[i+1:], r-1): #뺀것
                yield [array[i]] + next