배열을 정렬하는 다양한 알고리즘을 시각적으로 비교합니다. 노란색=비교, 분홍색=교환, 초록색=정렬 완료.
선형 탐색과 이진 탐색을 동시에 비교합니다. 정렬된 배열에서 이진 탐색이 얼마나 효율적인지 확인하세요.
재귀 함수는 자기 자신을 호출합니다. factorial(n)의 콜 스택이 쌓이고 되돌아오는 과정을 확인하세요.
알고리즘의 시간 복잡도를 비교합니다. n이 커질수록 각 복잡도 클래스의 차이가 얼마나 커지는지 확인하세요.
비트마스크는 정수의 각 비트를 플래그로 사용해 집합을 표현합니다. 상태 압축, 부분집합 탐색에서 강력한 도구입니다. AND, OR, XOR, NOT, SHIFT 연산을 직접 체험해보세요.
0b00101010 = 42S |= (1 << i)S &= ~(1 << i)(S >> i) & 1
for(s=S;s;s=(s-1)&S)2^n가지x & (-x)popcount(x)(x & 1) == 0
문자열의 모든 접미사를 정렬한 배열입니다. 문자열 검색(O(m log n)), 최장 공통 부분 문자열 탐색 등에 사용됩니다. 접미사를 사전순 정렬하면 이진 탐색으로 패턴을 빠르게 찾을 수 있습니다.
| 순위 | 원본 인덱스 | 접미사 | LCP |
|---|
복잡한 문제를 부분 문제로 나누고, 그 결과를 저장(메모이제이션)하여 중복 계산을 피하는 알고리즘 기법입니다. 최적 부분 구조 + 중복 부분 문제가 핵심 조건입니다.