Python
Python Quick Reference for Coding Test
Captain Herlock
2025. 3. 26. 01:55
반응형
1. 정렬 알고리즘
▶ 정렬 관련 내장 함수
arr = [5, 2, 9, 1, 5, 6]
# 오름차순 정렬
sorted_arr = sorted(arr) # [1, 2, 5, 5, 6, 9]
arr.sort() # in-place 정렬
# 내림차순 정렬
sorted_desc = sorted(arr, reverse=True)
arr.sort(reverse=True)
# key 기준 정렬
words = ['apple', 'banana', 'cherry']
sorted_words = sorted(words, key=len) # 길이 기준 정렬
2. 탐색 알고리즘
▶ 선형 탐색 (Linear Search)
def linear_search(arr, target):
for i, num in enumerate(arr):
if num == target:
return i
return -1
▶ 이진 탐색 (Binary Search) - O(log n)
import bisect
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# bisect 모듈 사용
index = bisect.bisect_left(arr, target) # target이 들어갈 위치
▶ 깊이 우선 탐색 (DFS)
def dfs(graph, node, visited):
if node not in visited:
visited.add(node)
for neighbor in graph[node]:
dfs(graph, neighbor, visited)
▶ 너비 우선 탐색 (BFS)
from collections import deque
def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
node = queue.popleft()
if node not in visited:
visited.add(node)
queue.extend(graph[node])
3. 자주 쓰는 내장 함수
▶ 리스트 관련 함수
arr = [3, 1, 4, 1, 5]
arr.append(9) # 추가
arr.pop() # 마지막 요소 제거
arr.remove(1) # 특정 값 제거
arr.reverse() # 리스트 뒤집기
▶ 문자열 관련 함수
s = "hello world"
print(s.upper()) # 대문자로 변환
print(s.lower()) # 소문자로 변환
print(s.replace("world", "Python")) # 문자열 치환
▶ 기타 유용한 함수
numbers = [1, 2, 3, 4, 5]
print(sum(numbers)) # 합계
print(max(numbers)) # 최대값
print(min(numbers)) # 최소값