코딩 테스트를 위한 파이썬 문법 [라이브러리]

Yuno·2021년 5월 16일
0

파이썬 문법

목록 보기
4/4
post-thumbnail

코딩테스트에서 자주 사용되는 주요 라이브러리의 문법

파이썬 표준 라이브러리 : https://docs.python.org/3/library/index.html

파이썬의 표준 라이브러리는 다양하지만, 코딩 테스트를 준비하며 필요한
내장함수 및 라이브러리를 알아본다.

내장함수

별도의 import 명령어 없이 바로 사용할 수 있는 내장 함수가 존재한다.
프로그램 작성에 있어 가장 기본적이며 필수적인 기능을 포함한다.

sum

iterable 객체가 주어지면, 모든 원소의 합을 반환한다.

arr = [1,2,3,4,5]

print(sum(arr))		# 15

abs

인자로 받은 값의 절대값을 반환한다.

pow

pow(x,y)xy제곱한 결과값을 반환한다.

min

파라미터가 2개 이상 들어왔을 때 가장 작은 값을 반환한다.

print(min(arr))		# 1
print(min(4,2,9))	# 2

max

파라미터가 2개 이상 들어왔을 때 가장 큰 값을 반환한다.
maxmin은 iterable을 인수로 받을 수 있다.

eval

수학 수식이 문자열로 들어오면, 수식을 계산한 결과를 반환한다.

print(eval("5+5"))	# 10

len

len(s)는 s의 길이를 반환한다.

range

주로 for문과 같이 사용되며, 입력받은 숫자에 해당하는 범위 값을, 반복가능한 객체로 반환한다.
range(start[,end,step])

sorted

iterable 객체에 대해 정렬된 결과를 반환한다.
key 속성으로 정렬 기준을 명시할 수 있고, reverse 속성으로 내림차순을 정의할 수 있다.

arr = [('홍길동',1),('관리자',0),('아무개',5)]

print(sorted(arr,key=lambda x:x[1], reverse = True))
# 두번째 원소를 기준으로 내림차순 정렬

iterable 객체는 기본으로 sort()함수를 내장하여, 이 함수로도 정렬할 수 있다.

map

map(f,iterable)은 입력받은 iterable의 각 요소를 함수 f가 수행한 결과를 묶어 반환한다.

def two_times(v):
    return v*2

arr = list(map(two_times,[1,2,3]))
print(arr) # [2,4,6]

filter

filter(f,iterable)은 각 요소를 함수 f가 수행한 결과가 참인 것만 걸러내 묶어 반환한다.

def positive(v):
    return v>0

arr = list(filter(positive,[1,0,-1,-5,4,3])
print(arr) # [1,4,3]

hex

정수값을 입력받아 16진수 값으로 반환하는 함수이다.

int

숫자형태 문자열이나, 실수를 정수로 반환하는 함수이다.
int(v,radix)radix진수로 표현된 문자열 x를 10진수로 변환한다.

int('11',2)	# 3
int('1A',16)	# 26

str

문자열 형태로 객체를 변환하고 반환한다.

chr/ord

chr()는 유니코드 값을 입력받아 해당하는 문자를 반환한다.
ord()는 반대로 문자의 유니코드 값을 반환한다.


itertools

파이썬에서 반복되는 데이터를 처리하는 기능을 포함하는 라이브러리이다.
코딩테스트에서 가장 유용하게 사용할 수 있는 클래스는 permutations, conbinations이다.

permutations는 순열을 구해주고, combinations는 조합을 구해준다.

permutations

순열을 반환한다.

from itertools import permutations

data = ['A','B','C']
result = list(permutations(data,3))

3개의 원소중 3개를 뽑아 순서있게 나열하는 경우의 수가 반환된다.
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
permutations는 클래스이므로 객체 초기화 이후에는 list로 만들어준다.

combinations

조합을 반환한다.

from itertools import combinations

data = ['A','B','C']
result = list(permutations(data,3))

순서에 상관없이 나열하는 모든 경우의 수를 반환한다.
[('A', 'B'), ('A', 'C'), ('B', 'C')]

product

permutations와 같이 iterable 객체에서 순열을 계산한다.
다만, 원소를 중복하여 뽑는다. (중복 순열)
product 객체를 초기화 할 때는, 뽑고자 하는 데이터의 수를 repeat속성으로 넣어준다.

data = ['A','B','C']

print(list(product(data,repeat=2)))

combinations_with_replacement

combinations와 같이 iterable 객체에서 조합을 계산한다.
다만, 원소를 중복해서 뽑는다. (중복 조합)

data = ['A','B','C']

print(list(combinations_with_replacement (data,2)))

heapq

파이썬은 힙Heap 기능을 위해 heapq 라이브러리를 제공한다.
힙 정렬, 우선순위 큐 기능을 구현하고자 할 때 사용된다.

파이썬의 힙은 최소 힙(Min Heap)으로 구성되어 있고,
삽입할때는 heappush() 메소드, 꺼낼 때는 heappop() 메소드를 사용한다.

0개의 댓글