프로그래머스 : Python 라이브러리

0
post-thumbnail

파이썬에서 지원하는 표준 라이브러리 중 코딩 테스트를 준비하면서 꼭 알아야 하는 6가지 라이브러리에 대해서 적어보고자 한다.

1. 내장함수

별도의 import문 없이 바로 사용할 수 있는 함수!

(1) eval

괄호 안에 문자열로 된 수식이 들어오면 수식 계산 결과를 반환한다.

(2) sorted

추가적으로 key속성으로 정렬 기준을 명시할 수 있고, reverse속성으로 결과 리스트를 뒤집을지 정할 수 있다.

sorted(iterable객체)

예를 들어, 튜플을 리스트 원소로 가지는 리스트에서 튜플의 두 번째 원소를 기준으로 내림차순으로 정렬하고 싶다면 아래와 같이 사용할 수 있다.

(3) zip

zip(iterable객체)은 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수이다. 만약 길이가 다를 경우 같은 인덱스끼리만 짝지어주고, zip 객체에서 나머지 인덱스는 제외된다.

(4) enumerate

iterable객체를 입력으로 받아 (인덱스 값, 객체 원소 값)을 튜플 형태로 반환한다.


2. itertools

순열(permutations)과 조합(combinations) 라이브러리가 가장 많이 쓰인다.

(1) permutations

permutations는 iterable객체에서 r개의 데이터를 뽑아 일렬로 나열하는 경우의 수를 계산해준다. 이때 permutations은 클래스 이므로 원하는 자료형으로 변환하여 사용한다.
(만약, 중복을 허용하여 순열을 사용하고 싶다면 product 라이브러리를 살펴보자!)

(2) combinations

combinations는 iterable객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 경우의 수를 계산해준다. 이 또한 클래스이므로 원하는 자료형으로 변환하여 사용한다.
(만약, 중복을 허용하여 순열을 사용하고 싶다면 combinations_with_replacement 라이브러리를 살펴보자!)


3. heapq

힙 기능을 제공한다. 우선순위 큐 기능을 구현하기 위해 사용한다.


4. bisect

이진탐색 기능을 제공하는 라이브러리이다.


5. collections

코테에 자주 쓰이는 클래스는 deque와 Counter가 있다.

(1) deque

파이썬에서 큐를 구현하는 방식이다.
deque를 이용하는 이유는 list보다 배열의 앞 쪽 데이터 삽입, 삭제에 대해서 시간복잡도 면에서 효과적으로 쓰일 수 있기 때문이다.

따라서 스택과 큐 자료구조를 사용해야 한다면 deque를 사용하자.

from collections import deque
data = deque(iterable객체)

첫 번째 원소 추가첫 번째 원소 삭제
data.appendleft(값)data.popleft()

마지막 원소를 삭제하고 삽입하는것은 list와 동일하다!

큐로 쓰고자 한다면 append()와 popleft()를 사용하면 된다.
(FIFO 원칙에 의하여!)

(2) Counter

iterable객체가 주어졌을 때, 해당 객체에서 각 원소들이 몇 번씩 등장했는지를 알려준다.


6. math

팩토리얼, 제곱근, 최대공약수, 삼각함수를 포함해서 파이와 같은 상수를 포함한다.

(1) factorial(n)

n 팩토리얼을 반환한다.

(2) gcd(a,b)

a 와 b의 최대공약수를 반환한다.

profile
재미있는 아이디어 떠올리는 것을 좋아하고, 이를 구현하여 세상에 즐거움을 선물하고 싶은 사람입니다.

0개의 댓글