알고리즘은 입력을 원하는 출력으로 바꾸는 잘 정의된 계산 절차다. 이 분야는 자료구조·탐색·그래프·설계 기법·정렬을 파이썬 코드와 함께 다룬다. 먼저 복잡도 분석(빅오 표기법)으로 "얼마나 빠른가"를 재는 법을 익히고, 자료구조와 탐색, 설계 패러다임 순서로 보면 흐름이 자연스럽다.
- JavaScript Algorithms 전체 학습 지도: 자료구조 19개와 알고리즘 93개의 구현·설명·테스트 및 설계 패러다임
- JavaScript 자료구조 구현 19개: 연결 리스트·트리·그래프·Bloom Filter·LRU 캐시
- JavaScript 수학과 조합 알고리즘: 수론·점화식·집합·순열·조합 32개
- JavaScript 문자열·탐색·정렬: 문자열 매칭·탐색·정렬 22개
- JavaScript 순회·그래프 알고리즘: 연결 리스트·트리·그래프 순회와 경로 19개
- JavaScript 응용 알고리즘과 설계 패러다임: 그리디·DP·분할 정복, 암호·ML·기타 구현 20개
- 빅오 표기법과 시간 복잡도: 알고리즘의 정의, 빅오(O)·빅오메가(Ω)·빅세타(Θ) 표기법, 시간·공간 복잡도
- P, NP, NP-완전과 근사 알고리즘: 복잡도 클래스와 환원, 대표 NP-완전 문제를 알아보는 법, 근사·의사 다항·FPT 대응
- 구간 합과 접두사 합: 접두사 합으로 구간 합을 O(1)에 구하기
- KMP 문자열 검색 알고리즘: 실패 함수(pi 배열)로 텍스트 포인터를 되돌리지 않고 O(N + M)에 패턴 찾기
- Data-Structure: 스택, 큐·덱, 힙·우선순위 큐, 서로소 집합(Union-Find), 트리와 이진 탐색 트리
- Search: 완전 탐색과 백트래킹, 이분 탐색, BFS, DFS
- Graph: 그래프 표현 방식, 위상 정렬, 다익스트라와 최단 경로 알고리즘 고르기, 단절점과 단절선, 오일러 회로
- Paradigm: 재귀, 분할 정복, 동적 계획법, 그리디, 투 포인터와 슬라이딩 윈도우, 스위핑, 최장 증가 부분 수열
- Sorting: 기본 정렬(버블·선택·삽입·계수), 병합·퀵 정렬, 병합 삽입 정렬(Ford-Johnson)
- Math: 비트 연산 기법, 선형 점화식의 일반항, 벡터공간, 내적·외적과 거리
- 코딩 테스트 접근법: 문제를 푸는 순서, 반례 찾기, 실전 팁
- 현실 시스템을 움직이는 알고리즘과 자료구조: 일상 소프트웨어 속 자료구조, 일관된 해싱·블룸 필터·HyperLogLog·토큰 버킷·머클 트리 같은 시스템 설계 알고리즘
- 파싱 알고리즘과 프랫 파서: 연산자 우선순위와 바인딩 파워로 토큰을 구문 트리로 묶기