itertools 없이 순열조합 구하기 글이 조회수가 제법 잘 나와서 늘 의아했음
(파이썬 초보일때 자바코드 그대로 옮겨놓은거라 파이썬스러운 코드도 아니고 여러모로 거지같이 옮겨졌는데도,,,)
[🖥] - [Python] 순열조합 itertools 없이 직접 구현하기 (순열 조합 중복순열 중복조합 )
약간 저학년 전공과목에서 처음에 라이브러리없이 쌩으로 직접 짜보면서 공부할때나 필요할 줄 알고 정리해서 올려보았는데,,
삼성 역량테스트 준비하다보니 이게 필요하다는 걸 깨달은거임,,,,,
이 글 찾아오신 분들도 그런 이유로 찾은게 맞을까요??!?!!?
def next_permutation(a):
i = len(a) - 1
j = len(a) - 1
k = len(a) - 1
while i > 0 and a[i-1] >= a[i]:
i -= 1
if i == 0:
return False
while a[i-1] >= a[j]:
j -= 1
a[i-1], a[j] = a[j], a[i-1]
while i < k:
a[i], a[k] = a[k], a[i]
i += 1
k -= 1
return a
C++에서는 next_permutation(arr)이라는 함수가 있어서
만약에 [1,2,3]이라는 배열을 인자로 주면
[1,3,2]인 다음 순열을 리턴해주나보다
파이썬과 자바에는 이런 함수가 없어서 직접 짜서 쓰는듯
이외에 dfs로도 구할 수 있지만 하여간,, 이것도 한가지 방법인거임~~~!!
'🖥' 카테고리의 다른 글
[Python] 2차원 배열 안의 부분 배열 회전하기 (2) | 2023.04.30 |
---|---|
[Algorithm] 비트마스크 (0) | 2023.04.17 |
[Raspberry pi] 맥에서 라즈베리파이 접속하기 (ssh 및 원격접속) (2) | 2023.03.01 |
[Python3] 최대공약수, 최소공배수 구하기 (math 라이브러리) (0) | 2023.01.29 |
[자료구조]트리 순회 (python3 코드) (0) | 2022.12.24 |
댓글