이 포스팅은 이것이 취업을 위한 코딩테스트다 APPENDIX A
코딩테스트를 위한 파이썬 문법 파트
를 읽고 공부한 내용을 정리하는 용도로 작성되었습니다.
APPENDIX A에 수록된 문법 외에 개인적으로 공부한 내용을 추가해 두었으며, 예제는 직접 연습하며 작성하였기에 교재와 다를 수 있습니다.
library | description |
---|---|
Built-in Functions | print(), input()과 같은 기본 입출력 기능부터 sorted()와 같은 정렬 기능을 포함하고 있는 기본 내장 라이브러리 |
itertools | 반복되는 형태의 데이터를 처리하는 기능을 제공하는 라이브러리 순열과 조합 라이브러리를 제공 |
heapq | 힙(Heap) 기능을 제공하는 라이브러리 우선순위 큐 구현에 사용 |
bisect | 이진탐색(Binary Search) 기능을 제공하는 라이브러리 |
collections | 덱(deque), 카운터(Counter) 등의 자료구조를 포함하고 있는 라이브러리 |
math | 필수적인 수학적 기능을 제공하는 라이브러리 팩토리얼, 제곱근, 최대공약수, 삼각함수 관련 메서드, pi 등의 상수 포함 |
iterable 객체: 반복 가능한 객체로 list, dictionary, tuple 등이 이에 해당한다.
>>> result = eval("100*(10%7)+5")
>>> result
305
>>> data = sorted([5, 6, 9, 0, 3])
>>> data
[0, 3, 5, 6, 9]
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
result = sorted(student_tuples, key=lambda student: student[2], reverse = True)
print(result)
# result
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
※ lambda를 처음 보신다면 이 포스팅을 참고하세요 😉
※ 리스트와 같은 iterable 객체는 sort() 메서드가 내장되어 있기 때문에 sorted() 함수를 사용할 필요가 없다.
from itertools import permutations
fruits = ['🍏', '🍌', '🍓']
result = list(permutations(fruits, 2))
print(result)
재미를 위해 과일을 넣어봤다.
# result
[('🍏', '🍌'), ('🍏', '🍓'), ('🍌', '🍏'),
('🍌', '🍓'), ('🍓', '🍏'), ('🍓', '🍌')]
※ permutations는 클래스이기 때문에 객체 초기화 이후에는 list로 변환하여 사용해야 한다.
from itertools import combinations
fruits = ['🍏', '🍌', '🍓']
result = list(combinations(fruits, 2))
print(result)
# result
[('🍏', '🍌'), ('🍏', '🍓'), ('🍌', '🍓')]
from itertools import product
fruits = ['🍏', '🍌', '🍓']
result = list(product(fruits, repeat = 2))
# repeat: 중복 허용
# 만약 repeat을 써주지 않는다면 다음과 같은 에러가 발생한다.
# result = list(product(fruits, 2))
# TypeError: 'int' object is not iterable
print(result)
# result
[('🍏', '🍏'), ('🍏', '🍌'), ('🍏', '🍓'),
('🍌', '🍏'), ('🍌', '🍌'), ('🍌', '🍓'),
('🍓', '🍏'), ('🍓', '🍌'), ('🍓', '🍓')]
from itertools import combinations_with_replacement
fruits = ['🍏', '🍌', '🍓']
result = list(combinations_with_replacement(fruits, 2))
print(result)
# result
[('🍏', '🍏'), ('🍏', '🍌'), ('🍏', '🍓'),
('🍌', '🍌'), ('🍌', '🍓'), ('🍓', '🍓')]
한 편으로 적기에는 내용이 많아 heapq, bisect, collections 등의 표준 라이브러리는 다음 포스팅에서 설명할게요🥰
이 시리즈가 코딩테스트를 공부하는데 조금이나마 도움이 되셨다면 💚를 눌러주세요😉
Source