반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 분할정복
- 이진트리
- BFS
- 우선순위큐
- 구조체포인터
- branch
- 이진탐색트리
- 포인터
- c언어
- sw사관학교 정글
- malloc
- 웹스크래핑
- Git
- AWS
- typescript
- 파이썬
- react
- 정글
- 힙
- javascript
- DFS
- beautifulsoup
- 백준
- pintos
- 클린코드
- 행렬제곱
- BOJ
- 이분탐색
- SW사관학교정글
- 개발일지
Archives
- Today
- Total
대범하게
[Python] 순열 permutations, 조합 combinations 본문
반응형
순열과 조합을 직접 구현하려다가 구현의 벽에 부딪혔고, (ㅠㅠ)
import itertools를 이용하여 간편하게 순열과 조합을 이용할 수 있는 방법을 찾았다.
순열 permutation
순열이란 몇 개를 골라 순서를 고려해 나열한 경우의 수를 말한다.
즉, '서로 다른 n개 중 r개를 골라 순서를 정해 나열한 경우의 수'이다.
순열은 순서를 고려하기 때문에
[A, B, C]의 리스트에서 2개의 원소를 골라 순서를 정해 나열하면 [(A, B), (A, C), (B, A), (B, C), (C, A), (C, B)] 이다.
즉, (A, B)와 (B, A)는 다른 것이다.
import itertools
arr = ['A', 'B', 'C']
nPr = itertools.permutations(arr, 2)
print(list(nPr))
결과 : [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
from itertools import permutations
arr = ['A', 'B', 'C']
nPr = permutations(arr, 2)
print(list(nPr))
결과 : [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
조합 combination
조합이란 '서로 다른 n개 중에서 순서에 상관없이 r개를 뽑는 경우의 수'이다.
즉, 서로 다른 n개 중 r개를 골라 순서를 정해 나열한 경우의 수이다.
순열은 순서를 고려하지 않기 때문에
[A, B, C]의 리스트에서 2개의 원소를 골라 순서를 정해 나열하면 [(A, B), (A, C), (B, C)] 이다.
즉, (A, B)와 (B, A)는 같은 것이다.
import itertools
arr = ['A', 'B', 'C']
nCr = itertools.combinations(arr, 2)
print(list(nCr))
결과 : [('A', 'B'), ('A', 'C'), ('B', 'C')]
'Problem Solving > Python Concepts' 카테고리의 다른 글
[Python] 리스트를 join 함수 활용하여 문자열로 만들기 (0) | 2022.10.06 |
---|---|
[Python] 파이썬 영문 대소문자 변환 (0) | 2022.09.27 |
[Python] 리스트의 문자열을 int로 변환 (0) | 2022.09.27 |
[Python] 파이썬 데이터 입력받기 (0) | 2022.09.26 |
[Python] 파이썬 숫자 각 자리수 분리 (0) | 2022.09.26 |
Comments