[Python] 선형 탐색(Linear Search) 이진 탐색 (Binary Search)
·
BackEnd/Python
선형 탐색 (Linear Search)  선형 탐색은 배열 또는 리스트의 처음부터 끝까지 차례대로 요소를 비교하여 원하는 값을 찾는 방법입니다.시간 복잡도는 O(n)입니다. 선형 탐색은 정렬되지 않은 데이터나 작은 데이터 셋에 간단히 적용 가능합니다. 예시 코드 def linear_search(arr, target): for i in range(len(arr)): if arr[i] == target: return i # 찾은 경우 인덱스 반환 return -1 # 찾지 못한 경우 -1 반환# 사용 예제arr = [4, 2, 7, 1, 9, 3]target = 7result = linear_search(arr, target)  이진 탐색 (Binary Sear..
[Python] 깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS)
·
BackEnd/Python
DFS (Depth-First Search)깊이 우선 탐색은 한 경로를 끝까지 탐색한 후 다시 돌아와 다른 경로를 탐색하는 방식입니다. 스택 자료구조나 재귀를 사용하여 구현됩니다.  DFS는 모든 경로를 탐색하므로 그래프의 깊이가 깊을 경우 적합합니다. 예시 코드 def dfs(graph, start): visited = set() # 방문한 노드 집합 route = [] # 탐색 경로 stack = [start] # 스택에 시작 노드 추가 while stack: vertex = stack.pop() # 스택의 맨 위 노드를 꺼냄 if vertex not in visited: route.append(vertex) # 경로에 추가 ..
[Python] 해시 테이블 (Hash Table)
·
BackEnd/Python
Hash Table 해시 테이블(Hash Table)은 데이터를 빠르게 저장하고 검색할 수 있는 자료구조입니다.기본적인 아이디어는 데이터를 배열의 인덱스에 매핑하여 검색 시간을 최소화하는 것입니다.이 구조는 특히 데이터가 많을 때 매우 효율적입니다. 해시 테이블은 키(Key)를 값(Value)에 매핑할 수 있는 구조로 구성되어 있습니다. 키(Key) : 데이터를 구분하는 고유한 값값(Value) : 키에 해당하는 실제 데이터    키를 해시 함수를 통해 인덱스로 변환하고, 그 인덱스에 해당하는 위치에 값을 저장합니다. 해시 함수 (Hash Function) 해시 함수란 입력된 키를 해시 테이블의 인덱스로 변환하는 함수입니다.해시 함수는 다음과 같은 특성을 가져야 합니다. 충돌 최소화 : 서로 다른 키가 ..
[Python] 우선순위 큐와 힙 (Priority Queue & Heap)
·
BackEnd/Python
우선순위 큐 (Priority Queue)  우선순위 큐는 큐(Queue) 자료구조의 변형으로, 각 요소가 우선순위(priority)를 가지고 있습니다.큐에서 데이터를 꺼낼 때 우선순위가 가장 높은 요소가 먼저 나옵니다.일반적인 큐는 FIFO(선입선출) 방식으로 작동하지만, 우선순위 큐는 우선순위에 따라 데이터를 처리합니다. 힙 (Heap) 힙은 이진 트리(Binary Tree) 기반의 완전 이진 트리(Complete Binary Tree)입니다. 이진 트리란?- 각 노드가 최대 두 개의 자식 노드를 가지는 트리 구조입니다. 완전 이진트리란?- 말단 노드를 제외하고 모든 노드가 2개의 자식을 갖고 있는 이진 트리입니다.   각 노드가 특정한 규칙을 따르는 트리 자료구조입니다. 힙은 각 노드가 하위 노드보..
[Python] 스택, 큐, 데크
·
BackEnd/Python
스택 입/출력 한쪽 끝단에서 모두 발생하며, 후입선출 특징을 가지는 자료구조입니다. 후입선출(LIFO: Last In First Out) 특성을 가지는 자료구조 스택의 기본 연산- push : 스택의 맨 위의 새로운 요소를 추가- pop : 스택의 맨 위에 있는 요소를 제거하고 반환- peek : 스택의 맨 위에 있는 요소를 제거하지 않고 반환- isEmpty : 스택이 비어있는지 확인  활용 예시로는 다음과 같이 있습니다. 1. 실행취소(Undo) 기능2. 웹 브라우저의 뒤로가기3. 함수 호출 스택 스택 코드 예시 Stack 클래스 구현 class Stack: def __init__(self): self.stack = [] def push(self, item): se..