목록순열 (2)
준호씨의 블로그
for loop 에서 index 를 알려면 enumerate for i, x in enumerate([1, 3, 5]): print(i, x) 0 1 1 3 2 5 itertools.permutations 순열. 리스트 각 항목이 중복 되지 않는 모든 경우의 조합 구하기 import itertools for perm in itertools.permutations([1, 2, 3]): print(perm) (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1) 순열에 대한 자세한 설명은 http://junho85.pe.kr/1025 를 참고 한다.
알고리즘 문제 풀기에서 단골로 나오는 것중 하나가 순열입니. 리스트가 있을 때 서로 겹치지 않게 모든 경우로 표현하는 것입니다. 예들 들어 1과 2가 있으면 다음과 같은 조합을 만들 수 있습니다. 1 2 2 1 만약 1, 2, 3이 있다면 다음과 같은 조합을 만들 수 있겠죠? 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 순열은 factorial 로 경우가 수의 늘어납니다. 1! = 1 2! = 1 x 2 = 2 3! = 1 x 2 x 3 = 6 4! = 1 x 2 x 3 x 4 = 24 순열을 직접 구현 할 수도 있겠지만, 빠르게 해답을 찾으려면 itertools 를 사용할 수 있습니다. (python 만세) import itertools for perm in itertools.per..