트라이(Trie) 알고리즘 트라이는 문자열들을 저장하고 효율적으로 탐색할 수 있는 트리 기반의 자료구조입니다. 특히, 자동 완성, 사전 검색 등의 기능에 유용하게 사용됩니다. 기본 구조 트라이의 각 노드는 알파벳을 키로 가지는 자식 노드들의 맵(또는 배열)과, 문자열의 끝을 나타내는 플래그로 구성됩니다. 1. 트라이 노드 정의 class TrieNode { constructor() { this.children = {}; this.isEndOfWord = false; } } 2. 트라이 클래스 정의 class Trie { constructor() { this.root = new TrieNode(); } // 문자열 삽입 insert(word) { let node = this.root; for (let ch..
크루스칼(Kruskal) 알고리즘 크루스칼 알고리즘은 그래프에서 최소 비용 신장 트리를 찾기 위한 알고리즘입니다. 주요 아이디어는 간선의 비용을 기준으로 오름차순 정렬한 후, 가장 작은 비용의 간선부터 연결하되 사이클을 형성하지 않도록 주의하는 것입니다. 아래는 크루스칼 알고리즘의 기본 개념을 사용하여, 그래프에서 최소 비용 신장 트리의 총 비용을 구하는 자바스크립트 함수입니다. class UnionFind { constructor(size) { this.parent = Array.from({ length: size }, (_, index) => index); } find(node) { if (this.parent[node] === node) { return node; } return this.paren..