알고리즘/알고리즘 개념

[Python]Permutation을 아십니까?

개발자 덕구🐾 2023. 10. 29. 09:59
728x90

 

 

알았는데요 , 

1년동안 안쓰니까 잊어먹었습니다. 

 

 

이래서 기록이 중요합니다. 

 

 


 

 

Permutation은 파이썬에서 제공해주는 함수이다. (itertools에 있음)

순열이라는 뜻으로 학교다닐 때 배우던 순열과 동일한 뜻이다.

 

고3 확률과통계를 더 열심히 들었어야하는건데 ... 

 

 

=> 서로 다른 N 개중에 r개를 고른다!! 

 

nPr 로 표시한다.

 

 

from itertools import permutations


arr = ['1','2','3']
npr = permutations(arr,2)
print(list(npr))

이렇게 하면 1,2,3 중에서 2개를 고르는것이다. 

[1,2    1,3     2,1    2,3     3,1     3,2 ]    가  나올것같다. 

 

 

출력의 결과는 다음과 같다. 

[('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')]

 

 

 

사실 (1,3) 과 (3,1)은 순서를 무시한다면 같은 값이다. 

그런데 이 permutation[순열]은 순서를 무시하지않는다. 

순서를 무시하는 "조합"도 다룰 예정이다.   

 

 

 

 

 

 

permutation 연습 문제 : 

프로그래머스 - 카카오인턴십 - 수식 최대화 :

https://school.programmers.co.kr/learn/courses/30/lessons/67257?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

 

참고글 : 

https://velog.io/@dramatic/Python-permutation-combination-%EC%88%9C%EC%97%B4%EA%B3%BC-%EC%A1%B0%ED%95%A9

 

[Python] permutation, combination 순열과 조합

Python의 itertools를 이용하면 순열과 조합을 for문 없이 구현할 수 있다.

velog.io

 

반응형