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))  # 최소값