알고리즘카
  • 알고리즘 분석
  • 계산 복잡도
    1. 점근적 분석
    2. 마스터 정리
  • 정렬
    1. 버블 정렬
    2. 선택 정렬
    3. 삽입 정렬
    4. 힙 정렬
    5. 계수 정렬
    6. 기수 정렬
  • 이진 탐색과 인터랙티브 문제
    1. 이진 탐색
    2. 답에 대한 이진 탐색
  • 시퀀스
    1. 좌표 압축
  • 문제 분해
    1. 스위프 라인
    2. 상태 롤백
    3. 제곱근 휴리스틱
    4. Mo 알고리즘
    5. Meet-in-the-middle
  • 산술
    1. 수의 비트 표현
    2. 벡터화
  • 자료 구조
  • 기본 자료 구조
    1. 배열과 튜플
    2. 반복자
    3. 동적 배열
    4. 이진 힙
  • 탐색 트리
    1. STL의 트리
    2. 트립
    3. 암시적 키
  • 집합을 위한 자료구조
    1. 비트셋과 비트 압축
    2. 서로소 집합
  • 구간 쿼리
    1. 누적 합
    2. 펜윅 트리
    3. 희소 테이블
    4. 제곱근 구조
  • 영속
    1. 롤백 가능한 자료 구조
    2. 경로 복사 기법
    3. 영속 세그먼트 트리
    4. 영속 트립
  • 세그먼트 트리
    1. 포인터 기반 세그먼트 트리
    2. 지연 연산
    3. 지연 구축
  • 동적 계획법
  • DP의 일반적인 기법
    1. 구간 DP
    2. 게으른 DP
  • 조합 최적화
    1. 탐욕 알고리즘
    2. 매트로이드
    3. 담금질 기법
  • 게임 이론
    1. 님 게임
  • 레이어별 DP 재계산
    1. 분할 정복을 이용한 최적화
    2. 크누스 최적화
    3. Convex Hull Trick
    4. 이산 라그랑주 방법
  • 수학
  • 대수학
    1. 이진 거듭제곱
    2. 행렬
    3. 행렬 곱셈 문제
    4. 선형 방정식
    5. 다항식
    6. 보간
    7. 카라추바 알고리즘
    8. 고속 푸리에 변환
  • 모듈러 산술
    1. 유클리드 알고리즘
    2. 확장 유클리드 알고리즘
    3. 모듈러 «나눗셈»
  • 소인수분해와 소수
    1. 에라토스테네스의 체
    2. 폴라드 로 알고리즘
  • 그래프
  • 그래프 탐색
    1. 그래프 저장
    2. 깊이 우선 탐색
    3. 연결 요소 찾기
    4. 사이클 찾기
    5. 이분 그래프와 색칠
    6. 오일러 회로
    7. 위상 정렬
    8. 브리지와 단절점
    9. 강한 연결 요소
    10. 2-SAT
  • 최단 경로
    1. 비순환 그래프에서의 경로
    2. 너비 우선 탐색
    3. 다익스트라 알고리즘
  • 연결성과 신장 트리
    1. 안전한 간선 보조정리
    2. 프림 알고리즘
    3. 크루스칼 알고리즘
    4. 보루프카 알고리즘
    5. 동적 연결성
  • 매칭
    1. 베르주 보조정리
    2. 쿤 알고리즘
    3. 매칭 문제
    4. 결혼 정리
  • 루트 트리
    1. 트리에서의 쿼리
    2. LCA 문제와 static RMQ의 관계
    3. 이진 리프팅 기법
    4. 센트로이드 분해
    5. Heavy-light 분해
  • 유량
    1. 최소 비용 유량
  • 기하
  • 기하학적 기본 요소
    1. 점과 벡터
    2. 내적과 외적
    3. 직선과 선분
    4. 다각형
  • 볼록 껍질
    1. 볼록 껍질의 응용
    2. 자비스 알고리즘
    3. 그레이엄 알고리즘
    4. 찬 알고리즘
    5. 위쪽 및 아래쪽 엔벨로프
  • 문자열
  • 부분 문자열 검색
    1. 접두사 함수
    2. Z 함수
    3. 마나커 알고리즘
  • 해싱
    1. 다항식 해싱
    2. 해시 충돌
    3. 동형 검사
  • 문자열 구조
    1. 접두사 트리
    2. 아호-코라식 알고리즘
    3. 회문 트리
    4. 접미사 배열
  • 기타
  • 수치 해석 방법
    1. 뉴턴 방법
    2. 몬테카를로 방법
  • 프로그래밍 기술
    1. 스트레스 테스트
    2. 그냥 재미있는 문제들
알고리즘

알고리즘

알고리즘 분석

계산 복잡도
  • 점근적 분석
  • 마스터 정리
정렬
  • 버블 정렬
  • 선택 정렬
  • 삽입 정렬
  • 힙 정렬
  • 계수 정렬
  • 기수 정렬
이진 탐색과 인터랙티브 문제
  • 이진 탐색
  • 답에 대한 이진 탐색
시퀀스
  • 좌표 압축
문제 분해
  • 스위프 라인
  • 상태 롤백
  • 제곱근 휴리스틱
  • Mo 알고리즘
  • Meet-in-the-middle
산술
  • 수의 비트 표현
  • 벡터화

자료 구조

기본 자료 구조
  • 배열과 튜플
  • 반복자
  • 동적 배열
  • 이진 힙
탐색 트리
  • STL의 트리
  • 트립
  • 암시적 키
집합을 위한 자료구조
  • 비트셋과 비트 압축
  • 서로소 집합
구간 쿼리
  • 누적 합
  • 펜윅 트리
  • 희소 테이블
  • 제곱근 구조
영속
  • 롤백 가능한 자료 구조
  • 경로 복사 기법
  • 영속 세그먼트 트리
  • 영속 트립
세그먼트 트리
  • 포인터 기반 세그먼트 트리
  • 지연 연산
  • 지연 구축

동적 계획법

DP의 일반적인 기법
  • 구간 DP
  • 게으른 DP
조합 최적화
  • 탐욕 알고리즘
  • 매트로이드
  • 담금질 기법
게임 이론
  • 님 게임
레이어별 DP 재계산
  • 분할 정복을 이용한 최적화
  • 크누스 최적화
  • Convex Hull Trick
  • 이산 라그랑주 방법

수학

대수학
  • 이진 거듭제곱
  • 행렬
  • 행렬 곱셈 문제
  • 선형 방정식
  • 다항식
  • 보간
  • 카라추바 알고리즘
  • 고속 푸리에 변환
모듈러 산술
  • 유클리드 알고리즘
  • 확장 유클리드 알고리즘
  • 모듈러 «나눗셈»
소인수분해와 소수
  • 에라토스테네스의 체
  • 폴라드 로 알고리즘

그래프

그래프 탐색
  • 그래프 저장
  • 깊이 우선 탐색
  • 연결 요소 찾기
  • 사이클 찾기
  • 이분 그래프와 색칠
  • 오일러 회로
  • 위상 정렬
  • 브리지와 단절점
  • 강한 연결 요소
  • 2-SAT
최단 경로
  • 비순환 그래프에서의 경로
  • 너비 우선 탐색
  • 다익스트라 알고리즘
연결성과 신장 트리
  • 안전한 간선 보조정리
  • 프림 알고리즘
  • 크루스칼 알고리즘
  • 보루프카 알고리즘
  • 동적 연결성
매칭
  • 베르주 보조정리
  • 쿤 알고리즘
  • 매칭 문제
  • 결혼 정리
루트 트리
  • 트리에서의 쿼리
  • LCA 문제와 static RMQ의 관계
  • 이진 리프팅 기법
  • 센트로이드 분해
  • Heavy-light 분해
유량
  • 최소 비용 유량

기하

기하학적 기본 요소
  • 점과 벡터
  • 내적과 외적
  • 직선과 선분
  • 다각형
볼록 껍질
  • 볼록 껍질의 응용
  • 자비스 알고리즘
  • 그레이엄 알고리즘
  • 찬 알고리즘
  • 위쪽 및 아래쪽 엔벨로프

문자열

부분 문자열 검색
  • 접두사 함수
  • Z 함수
  • 마나커 알고리즘
해싱
  • 다항식 해싱
  • 해시 충돌
  • 동형 검사
문자열 구조
  • 접두사 트리
  • 아호-코라식 알고리즘
  • 회문 트리
  • 접미사 배열

기타

수치 해석 방법
  • 뉴턴 방법
  • 몬테카를로 방법
프로그래밍 기술
  • 스트레스 테스트
  • 그냥 재미있는 문제들

이 섹션에는 시간이 지나면서 알고코드, e-maxx, 이전 알고리즘카의 글이 옮겨질 예정입니다.
원문: Алгоритмика(Copyleft 2017–2022 Algorithmica.org, Sergey Slotin, Tinkoff Generation), CC BY-SA 4.0
이 사이트는 원문을 한국어로 옮기고 수정한 비공식 번역이며 같은 CC BY-SA 4.0으로 배포합니다. yeokja로 기계 번역했습니다.