내장함수 : 기본 입출력 함수부터 정렬 함수까지 기본적인 함수들을 제공합니다.
:)파이썬 프로그램을 작성할 때 없어서는 안되는 필수적인 기능을 포함
itertools : 파이썬에서 반복되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공합니다.
:) 특히 순열과 조합 라이브러리는 코딩 테스트에서 자주 사용됩니다.
heapq:힙(Heap)자료구조를 제공합니다.
:) 일반적으로 우선순위 큐 기능을 구현하기 위해 사용됩니다.
bisect: 이진탐색(Binary Search)기능을 제공합니다.
collections:덱(deque),카운터(Counter)등의 유용한 자료구조를 포함합니다.
math:필수적인 수학적 기능을 제공합니다.
:) 팩토리얼,제곱근,최대공약수(GCD),삼각함수 관련 함수부터 파이(pi)와 같은 상수를 포함합니다.
순열: 서로다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는것
- {'A','B','C'}에서 두 개를 선택하여 나열하는 경우: 'ABC','ACB','BAC','BCA','CAB',CBA'
from itertools import permutations data = ['A','B','C'] result = list(permutations(data,3)) # 모든 순열 구하기 print(result)
중복 순열과 중복 조합
from itertools import product data = ['A','B','C'] result = list(product(data,repeat=2)) #2개를 뽑는 모든 순열구하기(중복허용) print(result) 출력:[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')] _______ from itertools import combinations_with_replacement data = ['A','B','C'] #2개를 뽑는 모든 조합 구하기 result = list(combinations_with_replacement(data,2)) print(result) 출력:[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]