Algorithm/자료구조 4

Heap, Hash Table

힙(heap)과 해시 테이블(hash)의 개념을 이해하고, 파이썬에서 자료구조를 구현각 자료구조의 특성을 파악하고, 실제 문제 해결에 활용자료구조를 활용한 알고리즘 문제를 해결 01. 힙 (Heap), 우선순위 큐(Priority Queue)- 힙은 완전 이진 트리의 일종으로, 우선순위 큐를 구현하기 위해 사용되는 자료구조 힙(heap)은 특정 규칙을 갖는 완전 이진 트리최대 힙: 부모 노드가 자식 노드보다 항상 크거나 같음최소 힙: 부모 노드가 자식 노드보다 항상 작거나 같음이진 트리각 노드가 최대 두 개의 자식 노드를 가지는 트리 구조완전 이진트리: 말단 노드를 제외하고 모든 노드가 2개의 자식을 갖고 있는 이진트리   힙의 특성힙은 각 노드가 하위 노드보다 큰(또는 작은) 우선순위를 가집니다.최대 ..

스택, 큐, 데크

스택(Stack) 자료구조를 이해하고 활용한다큐(Queue) 자료구조를 이해하고 활용한다데크(Deque) 자료구조를 이해하고 활용한다 1. 스택(Stack) - 입/출력이 한쪽 끝단에서 모두 발생하며, 후입선출 특징을 갖는 자료구조 후입선출(LIFO: Last In First Out) 특성을 가지는 자료구조스택의 기본 연산push: 스택의 맨 위에 새로운 요소를 추가pop: 스택의 맨 위에 있는 요소를 제거하고 반환peek: 스택의 맨 위에 있는 요소를 제거하지 않고 반환isEmpty: 스택이 비어 있는지 확인 활용 예시실행취소(Undo) 기능웹 브라우저의 뒤로가기함수 호출 스택 스택 코드 예시 Java utill.Stack 라이브러리 활용import java.util.Stack;public class ..

브루트포스 알고리즘과 슬라이딩 윈도우 알고리즘

브루트포스 알고리즘 가능한 모든 경우의 수를 전부 탐색하여 문제를 해결하는 방식 단순하고 구현이 쉬우며, 특정 상황에서는 효과적일 수 있지만, 일반적으로 시간이 많이 걸릴 수 있습특히 입력 데이터가 클 경우에는 비효율적 예를 들어, 문자열에서 특정 패턴을 찾는 문제에서문자열 s와 패턴 p가 주어졌을 때, 패턴이 문자열에 포함되어 있는지를 확인하는 코드 def brute_force_search(s, p): n = len(s) m = len(p) for i in range(n - m + 1): j = 0 while j  위 코드는 문자열 s의 모든 위치에서 패턴 p와 일치하는지를 확인하는 방식s의 길이가 n, p의 길이가 m이라면, 최대 O(n * m)의 시간..

스택 (Stack) 과 큐 (Queue) 자료구조에 대해 쉽게 알아보자

스택 (Stack):특징: 후입선출(LIFO, Last In First Out) 구조. 가장 마지막에 넣은 데이터가 가장 먼저 나옵니다.사용 예: 책을 쌓아 놓는 방식. 가장 위의 책이 가장 먼저 제거됩니다.주요 연산:push: 데이터를 스택에 넣는 연산.pop: 스택의 맨 위 데이터를 꺼내는 연산.top 또는 peek: 스택의 맨 위 데이터를 제거하지 않고 조회하는 연산.큐 (Queue):특징: 선입선출(FIFO, First In First Out) 구조. 가장 먼저 넣은 데이터가 가장 먼저 나옵니다.사용 예: 줄을 서는 방식. 줄의 맨 앞에 있는 사람이 먼저 나갑니다.주요 연산:enqueue: 데이터를 큐의 맨 뒤에 넣는 연산.dequeue: 큐의 맨 앞 데이터를 꺼내는 연산.front: 큐의 맨 앞..