알고리즘: 순열과 조합

주제무·2022년 2월 21일
0

알고리즘

목록 보기
2/21

순열과 조합

backtracking 을 이용한 조합

n, m = map(int, input().split())
data = []


def combination(pre_num):
    if len(data) == m:
        print(*data)
    else:
        for i in range(1, n+1):
            if pre_num < i:
                data.append(i)
                combination(i)
                data.pop()


combination(0)

순열

n, m = map(int, input().split())
data = []


def permutation(pre_list):
    if len(data) == m:
        print(*data)
    else:
        for i in range(1, n+1):
            if i not in pre_list:
                data.append(i)
                pre_list = data
                permutation(pre_list)
                data.pop()


permutation([])

지금보니 필요없는 리스트가 껴있다. data list만으로도 구현 가능 함으로 개선의 여지가 있다.

0개의 댓글