Thief of Wealth
Published 2019. 3. 24. 16:54
python 순열 개발/Python

 순열은 n!으로 표현되기도 하며, 함수를 직접만들거나 라이브러리를 사용할 수 있다.


1-1) for문 구현


import sys

def perm(a:list,n:int):
for i in range(1,n+1): #n만큼 for문이 필요함.
for j in range(1,n+1):
if(i!=j):
for k in range(1,n+1):
if(i!=k and j!=k):
for m in range(1,n+1):
if(i!=m and j!=m and k!=m): #n-1만큼 조건이 필요함
print(i,j,k,m)


a = [1,2,3,4]
n = len(a)
perm(a,n)


1-2) 재귀 구현


import sys

cnt =0
#n은 원소의 개수
#k는 현재까지 선택된 원소의 수
def perm(n:int,k:int):
global a
if(n==k):
print(a)
cnt+=1
return
for i in range(n):
a[i],a[k]=a[k],a[i] #바꾸고
perm(n,k+1) #바꾼상태로 재귀
a[i],a[k]=a[k],a[i] #되돌리기

a = [1,2,3,4]
cnt=0
n,k = 4,1
perm(n,k)


1-3) 라이브러리 구현


import itertools

a = [1,2,3,4]

a_permutaion = list(itertools.permutations(a,4)) # a의 원소로 4개의 원소를가진 순열생성

print(a_permutaion)



'개발 > Python' 카테고리의 다른 글

python itertools product  (0) 2019.03.24
python 조합  (0) 2019.03.24
python 유효범위  (0) 2019.03.24
python join함수  (0) 2019.03.24
python Swap  (0) 2019.03.24
profile on loading

Loading...