C++26 [알고리즘 특강] 8. Trie 이 글에서는 트라이의 정의, 구조, 구현 방법, 그리고 응용 사례에 대해 살펴봅니다.목차1. 트라이의 정의와 필요성1.1 트라이란?1.2 트라이의 장단점2. 트라이 구조2.1 노드 및 간선3. 트라이 구현3.1 C++ 구현3.2 Java 구현4. 트라이의 응용4.1 자동완성4.2 철자 검사기1. 트라이의 정의와 필요성1.1 트라이란?정의: 문자열을 저장하고 검색하는데 사용되는 트리 자료구조특징: 각 노드는 하나의 문자를 저장 루트에서 리프까지의 경로가 하나의 문자열을 나타냄 문자열 검색에 O(m) 시간 복잡도 (m은 문자열 길이)1.2 트라이의 장단점장점: 빠른 탐색 시간 O(N) (N=문자열 길이) Hash와 같은 시간 복잡도 BST 동작을 응용해서 더 많은 동작 가능단점: 큰 메모리 요구.. 2025. 5. 4. [알고리즘 특강] 7. Hash 이 글에서는 해시의 정의, 구현 방법, 그리고 해시 테이블 크기 선택에 대해 살펴봅니다.목차1. 해시의 정의와 필요성1.1 해시란?1.2 해시의 주요 구성 요소2. 해시 구현2.1 Hash Key2.2 Hash Value2.3 Hash Collision3. 해시 테이블 크기3.1 크기 선택 기준3.2 크기 선택 시 고려사항3.3 생일 문제와 해시 테이블 크기4. 해시 구현 예시4.1 Java 구현1. 해시의 정의와 필요성1.1 해시란?정의: 검색과 저장이 아주 빠르게 진행되는 데이터를 다루는 기법특징: Key -> Value를 이용한 빠른 탐색 key와 value가 한 쌍으로 존재 key값이 배열(해쉬테이블)의 인덱스로 변환 검색과 저장의 평균적 시간 복잡도가 O(1)1.2 해시의 주요 구성 요소.. 2025. 5. 4. [알고리즘 특강] 6. Graph 이 글에서는 그래프의 정의, 구현 방법, 그리고 다익스트라 알고리즘에 대해 살펴봅니다.목차1. 그래프의 정의와 필요성1.1 그래프란?2. 그래프 구현2.1 구현 방식2.2 인접 리스트 구현 - vector2.3 인접 리스트 구현 - 링크드 리스트2.4 인접 리스트 구현 - 1차원 배열3. 다익스트라 (Dijkstra)3.1 다익스트라란?3.2 다익스트라의 동작 원리3.3 다익스트라 구현 - Sequential Search3.4 다익스트라 구현 - Priority Queue Search1. 그래프의 정의와 필요성1.1 그래프란?정의: 노드(정점)와 노드들을 연결하는 간선으로 구성된 자료구조특징: 노드 간의 관계를 표현하는데 사용 방향성에 따라 방향 그래프와 무방향 그래프로 구분 가중치가 있는 경우 가.. 2025. 5. 2. [알고리즘 특강] 5. Binary Search 이 글에서는 이분탐색의 정의, 구현 방법, Lower bound, Upper bound, 그리고 Parametric Search에 대해 살펴봅니다.목차1. 이분탐색의 정의와 필요성1.1 이분탐색이란?2. 이분탐색 구현2.1 C++ 구현2.2 구현 시 주의사항3. Lower bound3.1 Lower bound란?3.2 Lower bound 구현4. Upper bound4.1 Upper bound란?4.2 Upper bound 구현5. Parametric Search5.1 Parametric Search란?5.2 Parametric Search 예시6. 이분탐색 구현 주의사항6.1 주요 주의점1. 이분탐색의 정의와 필요성1.1 이분탐색이란?정의: 정렬된 리스트에서 특정 값을 찾는 알고리즘특징: 찾고자 하.. 2025. 5. 2. [알고리즘 특강] 4. Heap 이 글에서는 Heap의 정의, 특징, 구현 방법, 그리고 우선순위 큐에 대해 살펴봅니다.목차1. Heap의 정의와 필요성1.1 Heap이란?1.2 Heap의 종류2. Heap의 특징2.1 시간복잡도3. Heap 구현3.1 배열 기반 구현3.2 인덱스 계산3.3 C++ 최대 힙 클래스 구현4. Heap 정렬4.1 Heap 정렬의 원리4.2 시간복잡도4.3 Heap 정렬 구현5. 우선순위 큐 (Priority Queue)5.1 우선순위 큐란?5.2 C++ 구현5.3 C++ 우선순위 큐 최적화5.4 Java 구현5.5 Java 우선순위 큐 최적화6. Priority_queue vs Multiset (C++)6.1 공통점6.2 차이점1. Heap의 정의와 필요성1.1 Heap이란?정의: 부모와 자식 간 일정한 .. 2025. 5. 2. [알고리즘 특강] 3. Union Find 이 글에서는 Union-Find 알고리즘의 정의, 동작 원리, 구현 방법, 그리고 최적화 기법에 대해 살펴봅니다.목차1. Union-Find의 정의와 필요성1.1 Union-Find란?1.2 Disjoint-Set이란?2. Union-Find의 동작 원리2.1 기본 원리2.2 시간복잡도3. Union-Find 구현3.1 초기화3.2 Find 연산3.3 Union 연산4. Union-Find 최적화4.1 Path Compression4.2 Union-by-rank1. Union-Find의 정의와 필요성1.1 Union-Find란?정의: 상호 배타적 집합(서로소 집합)(Disjoint-Set)을 표현할 때 사용하는 그래프 알고리즘역할: 임의의 두 노드(원소)가 서로 같은 그래프(집합)에 속하는지 판별하는 알.. 2025. 5. 2. 이전 1 2 3 4 5 다음