[Python3] Permutation (순열)
2018. 8. 4. 01:34 |
프로그래밍/기타
Python으로 순열을 구현해 보았다. swap을 활용한 정통 알고리즘에 비하면 매우 비효율적일 것이다. 그냥 내가 머리속에 이해하고 있는 순열의 개념을 생각나는대로 손가는대로 코딩해본거니 재미로만 보시길...
#!/usr/bin/env python3
def permutate(arr, r, prefix=None, result=None):
assert len(arr) >= r
if prefix is None:
prefix = []
if result is None:
result = []
if r < 1:
result.append(prefix)
return
for i in range(len(arr)):
new_prefix = prefix + [arr[i]]
remain = arr[:i] + arr[i+1:]
permutate(remain, r-1, new_prefix, result)
return result
# 테스트 출력
arr = [1, 2, 3, 4]
result = permutate(arr, 4)
for item in result:
print(item)
'프로그래밍 > 기타' 카테고리의 다른 글
| 하노이의 탑 (1) | 2019.02.13 |
|---|---|
| [Python3] 카카오 코드 페스티벌 2018 예선 - 인형들 (0) | 2019.01.18 |
| python-ldap Windows Active Directory unicodePwd userAccountControl DSID-031A120C (0) | 2018.12.20 |
| 티스토리 블로그 SSL(TLS) www <-> non-www 상호 전환 Javascript (7) | 2018.09.08 |
| [Python3] QuickSort (퀵 정렬) (0) | 2018.08.03 |
| [카카오][Python3] 리틀 프렌즈 사천성 (1) | 2018.08.02 |
| [카카오][Python3] 단체사진 찍기 (0) | 2018.08.01 |
| [Python3] Merge Sort (병합 정렬) (0) | 2018.07.14 |
최근에 달린 댓글 최근에 달린 댓글