표준 라이브러리
특정한 프로그래밍 언어에서 자주 사용되는 표준 소스코드를 미리 구현해 놓은 라이브러리
내장함수
print(), input()과 같은 기본 입출력 기능, sorted()와 같은 정렬 기능을 포함한 기본 내장 라이브러리
sum() 함수는 모든 원소의 합을 반환
result = sum([1, 2, 3, 4, 5])
print(result) # 출력값 : 15
min() 함수는 파라미터가 2개 이상 들어왔을 때 가장 작은 값 반환
max() 함수는 파라미터가 2개 이상 들어왔을 때 가장 큰 값 반환
result = min(7, 3, 5, 2)
print(result) # 출력값 : 2
result = max(7, 3, 5, 2)
print(result) # 출력값 : 7
eval() 함수는 수학 수식이 문자열 형식으로 들어오면 해당 수식을 계산한 결과를 반환
result = eval("(3 + 5) * 7")
print(result) # 출력값 : 56
sorted() 함수는 iterable 객체가 들어왔을 때, 정렬된 결과를 반환. key를 속성으로 정렬 기준을 명시하고, reverse 속성으로 정렬된 결과 리스트를 뒤집을지 여부 설정 가능
result = sorted([9, 1, 8, 5, 4]) # 오름차순 정렬
print(result) # 출력값 : [1, 4, 5, 8, 9]
result = sorted([9, 1, 8, 5, 4], reverse = True) # 내림차순 정렬
print(result) # 출력값 : [9, 8, 5, 4, 1]
itertools
반복되는 형태의 데이터 처리 기능을 제공, 순열과 조합 라이브러리를 제공함
permutations은 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우 즉, 순열을 계산해 줌
from itertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3))
# 출력문 : [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
print(result)
combinations은 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 순서 고려하지 않고 나열하는 경우 즉, 조합을 계산해 줌
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2))
# 출력문 : [('A', 'B'), ('A', 'C'), ('B', 'C')]
print(result)
product는 permutations와 같은데 다만, 원소를 중복하여 뽑는다. 뽑고자 하는 데이터의 수를 repeat 속성값으로 넣어준다.
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat = 2))
# 출력문 : [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
print(result)
combinations_with_replacement는 combinations와 같은데 다만, 원소를 중복하여 뽑는다.
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2))
# 출력문 : [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
print(result)
heapq
힙(Heap) 기능을 제공하는 라이브러리, 우선순위 큐 기능을 구현하기 위해 사용
힙에 원소를 삽입할 때는 heapq.heappush() 메서드를 이용하고, 원소를 꺼낼 때는 heapq.heappop() 메서드를 이용
파이썬에서는 최대 힙을 제공하지 않기 때문에, 원소의 부호를 임시로 변경하는 방식을 사용한다.
bisect
이진 탐색(Binary Search) 기능을 제공하는 라이브러리, 정렬된 배열 내에서 특정한 원소를 찾아야 할 때 매우 효과적
bisect_left(a, x)란 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드
bisect_right(a, x)란 정렬된 순서를 유지하도록 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메서드
count_by_range(a, left_value, right_value) 함수는 정렬된 리스트 내에서 값이 특정 범위에 속하는 원소의 개수를 구할 때 사용
a = [1, 2, 3, 3, 3, 3, 4, 4, 8, 9]
# 값이 4인 데이터 개수 출력, 출력값 : 2
print(count_by_range(a, 4, 4)
# 값이 [-1, 3] 범위에 있는 데이터 개수 출력, 출력값 : 6
print(count_by_range(a, -1, 3))
collections
덱(deque), 카운터(Counter) 등의 자료구조를 포함하고 있는 라이브러리
덱(deque)
연속적으로 나열된 데이터의 시작 부분이나 끝부분에 데이터를 삽입 또는 삭제할 때 매우 효과적
이를 이용해 큐를 구현해야 함(일반적인 큐 자료구조를 구현하는 라이브러리는 아님)
리스트 자료형과 달리 인덱싱, 슬라이싱 등 기능은 사용 불가
첫 번째 원소 제거 시 popleft()를 사용하고, 마지막 원소 제거할 때는 pop()을 사용
첫 번째 인덱스에 원소 x를 삽입 시, appendleft(x)를 사용하고 마지막 인덱스에 원소를 삽입 시, append(x)를 사용
Counter
등장 횟수를 세는 기능을 제공
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue']) # 'blue'가 등장한 횟수, 출력값 : 3
print(dict(counter)) # 사전 자료형으로 반환, 출력문 : {'red': 2, 'blue': 3, 'green': 1}
math
수학적 기능을 제공하는 라이브러리, 팩토리얼, 제곱근, 최대공약수(GCD), 최소공배수(LCM), 삼각함수 관련 함수, 파이(pi) 같은 상수를 포함
factorial(x) 함수는 x! 값을 반환
import math
print(math.factorial(5)) # 5! 출력, 출력값 : 120
sqrt(x) 함수는 x의 제곱근 반환
import math
print(math.sqrt(7)) # 7의 제곱근 출력
최대 공약수를 구할 때는 gcd(a, b) 함수를 사용
import math
print(math.gcd(21, 14)) # 출력값 : 7
파이(pi)나 자연상수 e를 제공
import math
print(math.pi) # 파이(pi) 출력
print(math.e) # 자연상수 e 출력
'Study > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 12. DFS & BFS (2) | 2023.05.12 |
---|---|
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 11. 그리디 & 구현 (0) | 2023.05.12 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 09. 함수 (0) | 2023.05.12 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 08. 반복문 (0) | 2023.05.12 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 07. 조건문 (0) | 2023.05.11 |
표준 라이브러리
특정한 프로그래밍 언어에서 자주 사용되는 표준 소스코드를 미리 구현해 놓은 라이브러리
내장함수
print(), input()과 같은 기본 입출력 기능, sorted()와 같은 정렬 기능을 포함한 기본 내장 라이브러리
sum() 함수는 모든 원소의 합을 반환
result = sum([1, 2, 3, 4, 5])
print(result) # 출력값 : 15
min() 함수는 파라미터가 2개 이상 들어왔을 때 가장 작은 값 반환
max() 함수는 파라미터가 2개 이상 들어왔을 때 가장 큰 값 반환
result = min(7, 3, 5, 2)
print(result) # 출력값 : 2
result = max(7, 3, 5, 2)
print(result) # 출력값 : 7
eval() 함수는 수학 수식이 문자열 형식으로 들어오면 해당 수식을 계산한 결과를 반환
result = eval("(3 + 5) * 7")
print(result) # 출력값 : 56
sorted() 함수는 iterable 객체가 들어왔을 때, 정렬된 결과를 반환. key를 속성으로 정렬 기준을 명시하고, reverse 속성으로 정렬된 결과 리스트를 뒤집을지 여부 설정 가능
result = sorted([9, 1, 8, 5, 4]) # 오름차순 정렬
print(result) # 출력값 : [1, 4, 5, 8, 9]
result = sorted([9, 1, 8, 5, 4], reverse = True) # 내림차순 정렬
print(result) # 출력값 : [9, 8, 5, 4, 1]
itertools
반복되는 형태의 데이터 처리 기능을 제공, 순열과 조합 라이브러리를 제공함
permutations은 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우 즉, 순열을 계산해 줌
from itertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3))
# 출력문 : [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
print(result)
combinations은 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 순서 고려하지 않고 나열하는 경우 즉, 조합을 계산해 줌
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2))
# 출력문 : [('A', 'B'), ('A', 'C'), ('B', 'C')]
print(result)
product는 permutations와 같은데 다만, 원소를 중복하여 뽑는다. 뽑고자 하는 데이터의 수를 repeat 속성값으로 넣어준다.
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat = 2))
# 출력문 : [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
print(result)
combinations_with_replacement는 combinations와 같은데 다만, 원소를 중복하여 뽑는다.
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2))
# 출력문 : [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
print(result)
heapq
힙(Heap) 기능을 제공하는 라이브러리, 우선순위 큐 기능을 구현하기 위해 사용
힙에 원소를 삽입할 때는 heapq.heappush() 메서드를 이용하고, 원소를 꺼낼 때는 heapq.heappop() 메서드를 이용
파이썬에서는 최대 힙을 제공하지 않기 때문에, 원소의 부호를 임시로 변경하는 방식을 사용한다.
bisect
이진 탐색(Binary Search) 기능을 제공하는 라이브러리, 정렬된 배열 내에서 특정한 원소를 찾아야 할 때 매우 효과적
bisect_left(a, x)란 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드
bisect_right(a, x)란 정렬된 순서를 유지하도록 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메서드
count_by_range(a, left_value, right_value) 함수는 정렬된 리스트 내에서 값이 특정 범위에 속하는 원소의 개수를 구할 때 사용
a = [1, 2, 3, 3, 3, 3, 4, 4, 8, 9]
# 값이 4인 데이터 개수 출력, 출력값 : 2
print(count_by_range(a, 4, 4)
# 값이 [-1, 3] 범위에 있는 데이터 개수 출력, 출력값 : 6
print(count_by_range(a, -1, 3))
collections
덱(deque), 카운터(Counter) 등의 자료구조를 포함하고 있는 라이브러리
덱(deque)
연속적으로 나열된 데이터의 시작 부분이나 끝부분에 데이터를 삽입 또는 삭제할 때 매우 효과적
이를 이용해 큐를 구현해야 함(일반적인 큐 자료구조를 구현하는 라이브러리는 아님)
리스트 자료형과 달리 인덱싱, 슬라이싱 등 기능은 사용 불가
첫 번째 원소 제거 시 popleft()를 사용하고, 마지막 원소 제거할 때는 pop()을 사용
첫 번째 인덱스에 원소 x를 삽입 시, appendleft(x)를 사용하고 마지막 인덱스에 원소를 삽입 시, append(x)를 사용
Counter
등장 횟수를 세는 기능을 제공
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue']) # 'blue'가 등장한 횟수, 출력값 : 3
print(dict(counter)) # 사전 자료형으로 반환, 출력문 : {'red': 2, 'blue': 3, 'green': 1}
math
수학적 기능을 제공하는 라이브러리, 팩토리얼, 제곱근, 최대공약수(GCD), 최소공배수(LCM), 삼각함수 관련 함수, 파이(pi) 같은 상수를 포함
factorial(x) 함수는 x! 값을 반환
import math
print(math.factorial(5)) # 5! 출력, 출력값 : 120
sqrt(x) 함수는 x의 제곱근 반환
import math
print(math.sqrt(7)) # 7의 제곱근 출력
최대 공약수를 구할 때는 gcd(a, b) 함수를 사용
import math
print(math.gcd(21, 14)) # 출력값 : 7
파이(pi)나 자연상수 e를 제공
import math
print(math.pi) # 파이(pi) 출력
print(math.e) # 자연상수 e 출력
'Study > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 12. DFS & BFS (2) | 2023.05.12 |
---|---|
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 11. 그리디 & 구현 (0) | 2023.05.12 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 09. 함수 (0) | 2023.05.12 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 08. 반복문 (0) | 2023.05.12 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] Chapter 07. 조건문 (0) | 2023.05.11 |