기본 입출력
input() : 한 줄의 문자열을 입력 받는 함수
map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용
- 공백을 기준으로 구분된 데이터를 입력 받을 때
- list(map(int, input().split()))
- 공백을 기준으로 구분된 데이터의 개수가 많지 않다면, 단순히 다음과 같이 사용
- a, b, c = map(int, input().split())
빠르게 입력 받기
입력을 최대한 빠르게 받아야 하는 경우
sys.stdin.readline() 메서드 이용, 입력 후 엔터가 줄 바꿈 기호로 입력되므로 rstrip() 과 함께 사용
표준 라이브러리
- 내장함수 : 기본 입출력 함수부터 정렬 함수까지 기본적인 함수들을 제공
- sum, min, max, eval(수 형태로 반환), sorted,
- itertools : 반족되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공
- 특히 순열(permutations)과 조합(combinations) 라이브러리
- 중복순열(product), 중복조합(combinations_with_replacement)
- heapq: 힙 자료구조 제공
- 일반적으로 우선순위 큐 기능을 구현하기 위해 사용 됨.
- bisect: 이진 탐색 기능을 제공
- collections : 덱(deque), 카운터(Counter) 등의 유용한 자료구조 포함
- Counter : 등장 횟수를 세는 기능 제공, 리스트와 같은 반복 가능한 객체가 주어졌을 때 내부의 원소가 몇 번 식 등장했는지 알려줌
- math : 필수적인 수학적 기능을 제공
- 팩토리얼, 제곱근, 최대공약수, 삼각함수 관련 함수부터 파이와 같은 상수를 포함
- 최대공약수(gcd)
참고 : https://youtu.be/m-9pAwq1o3w