파이썬 알고리즘 문제를 풀다가 소수인 숫자 구하기 문제를 풀면서 순열과 조합을 알게 되었는 데 신기한 함수인 것 같아서 정리 해본다.
파이썬에서 itertools라는 걸 사용하면 순열과 조합을 for문 없이도 구현 할 수 있다.
- permutation(순열)
: 뽑아서 순서대로 나열한다.
: 순열이란 몇 개를 골라서 순서를 고려해 나열한 경우의 수를 말한다.
즉, 서로 다른 n개 중 r개를 골라 순서를 정해 나열하는 가짓수이며
이렇게 순서대로 출력된다.
- combination(조합)
: 뽑기만 한다.
: 조합이란 서로 다른 n개 중에서 r(n>=r)개를 취하여 조를 만들 때, 이 하나하나의 조를 n개 중에서 r개를 취한 조합이다. 조합은 순서를 고려하지 않는다.
그 밖에도 zip(), all(), any(), chain() 등의 함수들이 있다.
- 순열과 조합의 차이점
: 출력 결과를 보면 순열과 조합의 차이를 알 수 있다.
순열은 순서대로 나열하기 때문에 12와 21은 다른 케이스로 본다.
하지만 조합은 뽑기만 하기 때문에 12와 21은 같은 케이스로 구분하낟. 그래서 결과가 12만 나온다.
출처
https://potensj.tistory.com/110
-> 여기서 응용 문제에 소수 찾기 문제가 있는데
이 코드를 분석 해보자면 is_prime라는 함수에 매개변수로 num을 받아서 만약 num이 1보다 작다면 false를 return 하고
그게 아니라면 반복문을 돌려서 2부터 num까지의 요소들을 뽑아서 만약 num을 i로 나눈 나머지가 0이면 false를 return 나나머지가 1이면 true를 return 하도록 해서 소수를 구할 수 있다.
'더 알아보기 > 개념' 카테고리의 다른 글
웹 신기술 WebAssembly (0) | 2021.10.31 |
---|---|
README 작성 가이드 (0) | 2021.10.31 |
API(Application Programming Interface) (0) | 2021.10.29 |
디렉터리와 터미널 (0) | 2021.10.29 |
마크업, 마크다운 (0) | 2021.10.20 |
댓글