새소식

Problem solving/풀이 전략 - 2022.11.11

[파이썬] 순열과 조합 직접 구현하기

  • -
  • 조합
def get_comb(arr, n):
    comb_list = []
    # 종료 조건
    if n == 0:
        return [[]]
    # 현재 arr의 담긴 수를 확인
    for i in range(len(arr)):
        # 선택된 수
        num = arr[i]
        # 나머지 수로 구성된 배열
        arr_left = arr[i+1:]
        for comb in get_comb(arr_left, n - 1):
            comb_list.append([num] + comb)
    return comb_list
  • 순열
def get_perm(arr, n):
    perm_list = []
    # 종료 조건
    if n == 0:
        return [[]]
    # 현재 arr의 담긴 수를 확인
    for i in range(len(arr)):
        # 선택된 수
        num = arr[i]
        # 나머지 수로 구성된 배열
        arr_left = arr[:i] + arr[i+1:]
        for perm in get_perm(arr_left, n - 1):
            perm_list.append([num] + perm)
    return perm_list

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.