math.gcd(a, b): 최대공약수math.lcm(a, b): 최소공배수 (Python 3.9+)math.factorial(n): n!math.sqrt(x): 제곱근math.ceil(x): 올림math.floor(x): 버림round(x): 반올림abs(x): 절댓값math.log(x, base): 로그 (기본은 자연로그)round(x, n): 소수 n째 자리까지 반올림
- 빠른 입력 (input()보다 훨씬 빠름)
import sys input = sys.stdin.readline
- 재귀 깊이 제한 설정 (DFS 등에서 RecursionError 방지)
import sys sys.setrecursionlimit(10**6) # 기본 제한은 약 1000
sorted(iterable, key=None, reverse=False): 정렬된 리스트를 반환 (원본은 그대로 유지)sum(iterable): 모든 요소의 합max(iterable): 가장 큰 값min(iterable): 가장 작은 값enumerate(iterable): 인덱스와 값을 함께 튜플로 반환for i, value in enumerate(['a', 'b']): # (0, 'a'), (1, 'b') ...
zip(a, b, ...): 여러 시퀀스를 병렬로 묶어줌for a, b in zip([1, 2], ['a', 'b']): # (1, 'a'), (2, 'b') ...
map(func, iterable): 각 요소에 함수를 적용list(map(str, [1, 2, 3])) # ['1', '2', '3']
filter(func, iterable): 조건을 만족하는 요소만 걸러냄list(filter(lambda x: x % 2 == 0, [1, 2, 3])) # [2]
any(iterable): 하나라도 True면 Trueall(iterable): 모두 True면 True
bisect.bisect_left(a, x): x를 삽입할 수 있는 가장 왼쪽 인덱스bisect.bisect_right(a, x): x를 삽입할 수 있는 가장 오른쪽 인덱스bisect.insort_left(a, x): 정렬된 리스트 a에 x를 왼쪽 기준으로 삽입bisect.insort_right(a, x): 정렬된 리스트 a에 x를 오른쪽 기준으로 삽입