[Python] 순열(Permutation)

ITmakesmeSoft·2022년 9월 25일
0

Algorithm_기초

목록 보기
3/7

순열(Permutation) 생성

  • 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것
  • 서로 다른 n개 중 r개를 택하는 순열은 아래와 같이 표현
nPrnPr
  • 그리고 nPr은 다음과 같은 식이 성립
nPr=n(n1)(n1)21nPr = n*(n-1)*(n-1)*…*2*1
  • nPn = n!이라고 표기하며, Factorial이라고 부름
n!=n(n1)(n1)21n! = n*(n-1)*(n-1)*…*2*1
  • {1, 2, 3}을 포함하는 모든 순열을 생성하는 함수
    for i1 in range(1, 4):
    		for i2 in range(1, 4):
    				 if i2 != i1:
    							for i3 in range(1, 4):
    									if i3 != i1 and i3 != i2:
    											print(i1, i2, i3)

재귀 호출을 통한 순열 생성

  • 숫자 1~3로 나타낼 수 있는 모든 순열 출력
number = [1,2,3]
p = [0]*3
used = [0]*3
def perm(level):
    if level == 3:
        print(*p)
        return
    for i in range(3):
        if used[i]==False:
            p[level]=number[i]
            used[i]=True
            perm(level+1)
            used[i]=False
perm(0)
profile
💎 Daniel LEE | SSAFY 8th

0개의 댓글