Python/이코테 with 파이썬 정리

[211203] 코딩 테스트를 위한 파이썬 표준 라이브러리

hae-koos 2021. 12. 3. 03:55
728x90
반응형
모든 게시물은 macOS Monterey 12.0.1 버전을 기준으로 작성하였습니다.
저서 '이것이 취업을 위한 코딩 테스트다 with 파이썬'을 바탕으로 작성하였습니다.

 

실전 코딩 테스트에서 유용한 표준 라이브러리

 

표준 라이브러리 자주 사용되는 표준 소스코드를 미리 구현해 놓은 라이브러리를 의미한다.

파이썬 표준 라이브러리는 다음 공식 문서에서 확인할 수 있으며 필요한 기능이 있다면 찾아 사용하길 권하고 있다.

 

https://docs.python.org/ko/3/library/index.html

 

파이썬 표준 라이브러리 — Python 3.10.0 문서

파이썬 표준 라이브러리 파이썬 언어 레퍼런스 는 파이썬 언어의 정확한 문법과 의미를 설명하고 있지만, 이 라이브러리 레퍼런스 설명서는 파이썬과 함께 배포되는 표준 라이브러리를 설명합

docs.python.org

 

 

[ 내장 함수 ]

 

eval 함수는 수식이 문자열로 들어오면 실제 수 자료형으로 결과를 반환하여 준다.

 

 

[itertools ]

 

모든 경우의 수를 고려해야 할 때 효율적으로 사용되는 라이브러리다.

반복되는 데이터를 처리하는 기능을 포함하고 있으며, 코딩 테스트에서 유용하게 사용되는 클래스는

permutations, combinations 즉, 순열과 조합이다.

 

 

나아가, 중복순열과 중복조합의 경우에도

product와 combinations_with_replacement 클래스를 활용하여 계산할 수 있다.

 

 

[ heapq ], [ bisect ] : 자주 사용되는 파트에서 다시 이야기하자.

 

[ collections ]

 

파이썬의 collections 라이브러리는 유용한 자료구조를 제공하는 표준 라이브러리다.

코딩 테스트에서 유용하게 사용되는 클래스는 deque와 Counter이다.

 

deque는 큐를 구현하는데 사용된다.

리스트 자료형의 경우, 데이터 삽입, 삭제 등의 다양한 기능을 제공하고 중간에 특정 원소를 삽입할 수도 있다.

하지만 리스트 자료형의 append(), pop() 메서드는 '가장 뒤쪽 원소'를 기준으로 수행된다. 따라서 앞쪽에 있는

원소를 삭제하거나 앞쪽에 새 원소를 삽입할 떄의 시간 복잡도는 O(N)이다.

 

  리스트 deque
가장 앞쪽에 원소 추가 O(N) O(1)
가장 뒤쪽에 원소 추가 O(1) O(1)
가장 앞쪽의 원소 제거 O(N) O(1)
가장 뒤쪽의 원소 제거 O(1) O(1)

 

deque의 첫 번째 원소를 제거할 때 popleft(), 마지막 원소를 제거할 때 pop()을 활용하며,

첫 번째 인덱스에 원소 x를 삽입할 때 appendleft(x), 마지막 인덱스에 삽입할 때 append(x)를 사용한다.

 

따라서 deque를 큐 자료구조로 이용할 때 삽입에는 append()를, 삭제에는 popleft()를 사용하면 되는 것이다.

그러면 먼저 들어온 원소가 항상 먼저 나가게 된다.

 

 

Counter는 등장 횟수를 세는 기능을 제공한다.

리스트와 같이 iterable 객체가 주어지면 내부의 원소가 몇 번씩 등장했는지를 알려준다.

 

 

[ math ]

 

math 라이브러리에는 팩토리얼, 제곱근, 최대공약수(GCD) 등 다양한 기능이 포함되어 있다.

 

 

728x90
반응형