CHUCK CHUCK 박사

잼잼 개발자

[Algorithm] Math - Factorial

수학 비트조작

Factorial? 팩토리얼(Factorial)은 음이 아닌 정수 n의 팩토리얼을 n!으로 표기하며, 이는 n보다 작거나 같은 모든 양의 정수의 곱입니다. 수학적으로는 다음과 같이 정의됩니다: n! = n × (n - 1) × (n - 2) × … × 1 특수한 경우: 0! = 1으로 정의됩니다. 예시: 3! ...

[Algorithm] Math - Data Structure

수학 비트조작

Bit Manipulation? 비트 조작(Bit Manipulation)은 이진 데이터의 비트를 직접 다루는 기술입니다. 이를 통해 특정 숫자의 비트를 설정하거나, 지우거나, 토글하거나 확인하는 작업을 수행할 수 있습니다. 보통 비트 연산자를 사용하여 작업을 합니다. 주요 비트 연산자: AND (&): 비트를 지우...

[Algorithm] Data Structure - Bloom Filter

자료구조 그래프

Bloom Filter? 블룸 필터는 집합에 원소가 포함되어 있는지를 테스트하기 위해 사용되는 확률적 자료 구조입니다. 공간 효율성이 매우 뛰어나지만, 몇 가지 단점도 존재합니다: 거짓 긍정(false positives)이 발생할 수 있는데, 이는 원소가 집합에 속하지 않지만 속한다고 잘못 판단할 수 있음을 의미합니다. 하지만 거짓...

[Algorithm] Data Structure - Disjoint Set

자료구조 분리 집합

Disjoint Set? 분리 집합(Disjoint Set, 유니언 파인드라고도 불림)은 중복되지 않는 여러 개의 집합을 관리하는 자료구조입니다. 이 자료구조는 두 가지 주요 연산을 제공합니다: Find: 특정 요소가 속한 집합(또는 대표자)을 찾습니다. Union: 두 개의 집합을 하나로 합칩니다. 이 자료구조는 동...

[Algorithm] Data Structure - Graph

자료구조 그래프

Graph? 그래프는 정점(또는 노드)과 간선으로 이루어진 비선형 자료구조입니다. 각 간선은 두 개의 정점을 연결하며, 방향이 있을 수도(유방향 그래프) 없을 수도(무방향 그래프) 있습니다. 그래프는 소셜 네트워크, 도로 지도, 컴퓨터 네트워크 같은 네트워크를 표현할 때 자주 사용됩니다. 그래프의 구성 요소 정점(노드): ...

[Algorithm] Data Structure - Fenwick Tree

자료구조 펜윅트리

Fenwick Tree? Fenwick Tree(또는 Binary Indexed Tree)는 배열의 값을 효율적으로 업데이트하고, 구간 합(prefix sum)을 빠르게 구할 수 있는 자료구조입니다. 이 자료구조는 다음과 같은 작업을 자주 해야 할 때 유용합니다: 포인트 업데이트: 배열의 특정 원소 값을 업데이트하는 작업. ...

[Algorithm] Data Structure - Segment Tree

자료구조 Segment 트리

Segment Tree? 세그먼트 트리(Segment Tree)는 구간 쿼리를 효율적으로 처리하는 자료 구조입니다. 특히 배열 내 요소들에 대한 업데이트가 빈번하게 발생하는 경우 유용합니다. 세그먼트 트리는 업데이트와 쿼리 모두 로그 시간에 처리할 수 있어, 알고리즘 문제에서 많이 사용됩니다. 세그먼트 트리의 주요 연산: ...

[Algorithm] Data Structure - Red Black Tree

자료구조 Red Black 트리

Red-Black Tree? Red-Black Tree는 자기 균형 이진 탐색 트리의 일종으로, 각 노드에 “색상”(빨간색 또는 검은색)을 저장하는 추가 비트가 있습니다. 트리의 균형이 깨지지 않도록 하여, 삽입, 삭제, 탐색 연산을 O(log n)의 시간 복잡도로 수행할 수 있게 합니다. Red-Black 트리는 몇 가지 규칙을 ...

[Algorithm] Data Structure - AVL Tree

자료구조 AVL 트리

Trie? 트라이는 문자열의 집합을 저장하는 데 사용되는 특수한 자료구조입니다. 특히 공통된 접두사를 공유하는 문자열을 검색하는 데 매우 효율적입니다. 구조 트라이는 노드로 구성되며, 각 노드는 문자를 나타냅니다. 각 노드는 하나의 문자를 나타내며, 트리의 경로는 문자열 또는 문자열의 접두사를 나타냅니다. 루트 노드는...

[Algorithm] Data Structure - Binary search tree

자료구조 이진 탐색 트리

이진 탐색 트리(BST) 개요 이진 탐색 트리(BST)는 다음과 같은 속성을 따르는 이진 트리의 일종입니다: 왼쪽 서브트리: 노드의 왼쪽 서브트리는 노드의 키보다 작은 키를 가진 노드만 포함합니다. 오른쪽 서브트리: 노드의 오른쪽 서브트리는 노드의 키보다 큰 키를 가진 노드만 포함합니다. 중복 노드 없음: 모든 노드는...