[Algo] 순열 만들기

AOD·2023년 6월 12일
0

Algorithm

목록 보기
5/31
post-thumbnail

순열

서로 다른 n개의 원소에서 r개를 중복없이 순서에 상관있게 선택하는 것을 순열(permutation)이라고한다.

(1) 백트래킹을 이용한 Hard Coding

def perm(n,k):
    if n == k:
        print(arr)
    else:
        for j in range(n,k): 
            arr[n],arr[j] = arr[j],arr[n]
            perm(n+1,k)
            arr[n],arr[j] = arr[j],arr[n]

arr = [1,2,3]
N =len(arr)
perm(0,N) # (0,3)

#===============================
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 2, 1]
[3, 1, 2]

(2) 모듈사용

from itertools import permutations

arr = [1,2,3]
arr = list(permutations(arr,3))


print(arr)
#==================================
[(1, 2, 3), (1, 3, 2), (2, 1, 3),
(2, 3, 1), (3, 1, 2), (3, 2, 1)]

------------------------------------
for lst in arr:
    print(lst)
#==================================
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
profile
No end point for Growth. 2023.01.02 ~ SoftWare공부 시작

0개의 댓글