Search

코테(실전)에서 유용한 표준 라이브러리

itertools

: 반복되는 형태의 데이터를 처리하기 위해 유용한 기능들을 제공
순열과 조합 라이브러리 → 완전탐색(모든 경우의 수)
 순열 구하기
from itertools import permutations data = ['A','B','C'] result = list(permutations(data,3)) # 모든 가능한 순열 구하기 print(result) # [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
Python
복사
 조합 구하기
from itertools import combinations data = ['A','B','C'] result = list(combinations(data,2)) # 2개를 뽑는 모든 조합 구하기 print(result) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
Python
복사
 중복 순열 구하기
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')]
Python
복사
 중복 조합 구하기
from itertools import combinations_with_replacement data = ['A','B','C'] result = list(combinations_with_replacement(data, 2)) # 2개를 뽑는 모든 조합 구하기(중복 허용) print(result) # [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
Python
복사

heapq

: heap(힙) 자료 구조를 제공
우선순위 큐 기능을 구현하기 위해 사용 → 최단경로

bisect

: 이진 탐색 기능을 제공

collections

: 덱, 카운터 등의 유용한 자료구조를 포함
Counter : 등장 횟수를 세는 기능
리스트와 같은 반복 가능한 객체가 주어졌을 때 내부의 원소가 몇 번씩 등장했는지를 알려준다.
from collections import Counter counter = Counter(['red','blue','red','green','blue','blue']) print(counter['blue']) # 'blue'가 등장한 횟수 출력 print(counter['green']) # 'green'이 등장한 횟수 출력 print(dict(counter)) # 사전 자료형으로 반환 ''' 3 1 {'red': 2, 'blue': 3, 'green': 1} '''
Python
복사

math

: 필수적인 수학적 기능 제공
팩토리얼, 제곱근, 최대공약수, 삼각함수 관련 함수부터 파이와 같은 상수를 포함
최대공약수와 최소공배수
1) 최대공약수 : gcd()
import math # 최소 공배수(lcm)을 구하는 함수 def lcm(a,b): return a * b // math.gcd(a,b) a = 21 b = 14 print(math.gcd(a,b)) # 최대공약수 계산 print(lcm(a,b)) # 최소공배수 계산 ''' 7 42 '''
Python
복사