코딩테스트에서 자주 사용되는 주요 라이브러리의 문법
파이썬 표준 라이브러리 : https://docs.python.org/3/library/index.html
파이썬의 표준 라이브러리는 다양하지만, 코딩 테스트를 준비하며 필요한
내장함수 및 라이브러리를 알아본다.
별도의 import
명령어 없이 바로 사용할 수 있는 내장 함수가 존재한다.
프로그램 작성에 있어 가장 기본적이며 필수적인 기능을 포함한다.
iterable 객체가 주어지면, 모든 원소의 합을 반환한다.
arr = [1,2,3,4,5]
print(sum(arr)) # 15
인자로 받은 값의 절대값을 반환한다.
pow(x,y)
는 x
의 y
제곱한 결과값을 반환한다.
파라미터가 2개 이상 들어왔을 때 가장 작은 값을 반환한다.
print(min(arr)) # 1
print(min(4,2,9)) # 2
파라미터가 2개 이상 들어왔을 때 가장 큰 값을 반환한다.
max
와 min
은 iterable을 인수로 받을 수 있다.
수학 수식이 문자열로 들어오면, 수식을 계산한 결과를 반환한다.
print(eval("5+5")) # 10
len(s)
는 s의 길이를 반환한다.
주로 for
문과 같이 사용되며, 입력받은 숫자에 해당하는 범위 값을, 반복가능한 객체로 반환한다.
range(start[,end,step])
iterable 객체에 대해 정렬된 결과를 반환한다.
key
속성으로 정렬 기준을 명시할 수 있고, reverse
속성으로 내림차순을 정의할 수 있다.
arr = [('홍길동',1),('관리자',0),('아무개',5)]
print(sorted(arr,key=lambda x:x[1], reverse = True))
# 두번째 원소를 기준으로 내림차순 정렬
iterable 객체는 기본으로 sort()
함수를 내장하여, 이 함수로도 정렬할 수 있다.
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(f,iterable)
은 각 요소를 함수 f가 수행한 결과가 참인 것만 걸러내 묶어 반환한다.
def positive(v):
return v>0
arr = list(filter(positive,[1,0,-1,-5,4,3])
print(arr) # [1,4,3]
정수값을 입력받아 16진수 값으로 반환하는 함수이다.
숫자형태 문자열이나, 실수를 정수로 반환하는 함수이다.
int(v,radix)
는 radix
진수로 표현된 문자열 x를 10진수로 변환한다.
int('11',2) # 3
int('1A',16) # 26
문자열 형태로 객체를 변환하고 반환한다.
chr()
는 유니코드 값을 입력받아 해당하는 문자를 반환한다.
ord()
는 반대로 문자의 유니코드 값을 반환한다.
파이썬에서 반복되는 데이터를 처리하는 기능을 포함하는 라이브러리이다.
코딩테스트에서 가장 유용하게 사용할 수 있는 클래스는 permutations, conbinations
이다.
permutations
는 순열을 구해주고, combinations
는 조합을 구해준다.
순열을 반환한다.
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로 만들어준다.
조합을 반환한다.
from itertools import combinations
data = ['A','B','C']
result = list(permutations(data,3))
순서에 상관없이 나열하는 모든 경우의 수를 반환한다.
[('A', 'B'), ('A', 'C'), ('B', 'C')]
permutations
와 같이 iterable 객체에서 순열을 계산한다.
다만, 원소를 중복하여 뽑는다. (중복 순열)
product
객체를 초기화 할 때는, 뽑고자 하는 데이터의 수를 repeat
속성으로 넣어준다.
data = ['A','B','C']
print(list(product(data,repeat=2)))
combinations
와 같이 iterable 객체에서 조합을 계산한다.
다만, 원소를 중복해서 뽑는다. (중복 조합)
data = ['A','B','C']
print(list(combinations_with_replacement (data,2)))
파이썬은 힙Heap
기능을 위해 heapq
라이브러리를 제공한다.
힙 정렬, 우선순위 큐 기능을 구현하고자 할 때 사용된다.
파이썬의 힙은 최소 힙(Min Heap)
으로 구성되어 있고,
삽입할때는 heappush()
메소드, 꺼낼 때는 heappop()
메소드를 사용한다.