-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocument.txt
More file actions
45 lines (40 loc) · 2.57 KB
/
document.txt
File metadata and controls
45 lines (40 loc) · 2.57 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
@ 자주 사용되는 파이썬 표준 라이브러리
----------------------------------------------------------------------------------------------------
* 내장함수 : 기존 입출력 부터 정렬 까지 기본적인 함수 제공
- sum(합출력), min(가장 작은 값), max(가장 큰 값), eval(사용자정의함수)
- sorted(값 정렬, reverse=True : 내림차순) -> 키 값 정렬도 가능
* itertools : 반복되는 형태의 데이터를 처리하기 위해 유용
- 모든 라이브러리를 조합해야할 때 많이 사용
- 완전 탐색에서 소스코드 간결하게 작성 가능
- 특히 순열, 조합 라이브러리는 코테에서 자주 사용됨!
- 순열(nPr): 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열
ex) {'a', 'b', 'c'}에서 세 개를 선택하는 경우= 'abc', 'acb', 'bac', 'bca', 'cab', 'cba' (순서고려)
ex) from itertools import permutations
data = ['a', 'b', 'c']
result = list(permutations(data, 3))
- 조합(nCr): 서로 다른 n개에서 순서에 상관 없이 서로 다른 r개를 선택
ex) {'a', 'b', 'c'}에서 순서를 고려하지 않고 두 개 뽑는 경우: 'ab', 'ac', 'bc'
ex) from itertools import combinations
data = ['a', 'b', 'c']
result = list(combinations(data, 3))
* heapq : 힙(Heap) 자료구조 제공
- 일반적으로 우선순위 큐 기능 구현 위해 사용
- 다익스트라같은 최단경로 알고리즘에서 많이 사용
* bisect : 이진탐색(Binary Search) 기능 제공
- 기본적인 형태의 이진탐색 알고리즘 사용할 때 효과적
* collections : 덱(deque), 카운터(Counter) 등의 유용한 자료구조 포함
- Counter : 각 원소가 몇 번씩 등장했는지를 세는 기능
ex) from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', blue', 'blue'])
print(counter['blue']) -> 3
print(counter['green']) -> 1
print(dict(counter)) #사전 자료형으로 반환 -> {'red': 2, 'blue': 3, 'green': 1}
* math : 필수적인 수학적 기능 제공
- 팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수 관련 ~ 파이(Pi)와 같은 상수 포함
- 최대 공약수 : gcd() 함수 이용 , 두 수의 공통된 약수 중에서 가장 큰 값
ex) print(math.gcd(21, 14)) #최대 공약수
- 최소 공배수 : 두 수의 공통된 배수 중에서 가장 작은 값
ex) def LCM(a,b):
return a * b // math.gcd(a,b)
print(LCM(21,14))
----------------------------------------------------------------------------------------------------