FIELD / CS / ALGORITHMS

Algorithms

입력 조건을 이용해 불필요한 계산을 제거한다

탐색, 정렬, 그래프, 그리디와 동적 계획법을 상태 변화·정당성·시간과 공간 비용으로 분석합니다.

ComplexitySearchSortingGraphOptimization
세부 주제 소개Foundation

탐색, 정렬, 그래프, 그리디와 동적 계획법을 상태 변화·정당성·시간과 공간 비용으로 분석합니다.

ComplexitySearchSortingGraphOptimization
CS 세부 주제7개 보기
Major index

대표 주제로 바로 찾기

전체 11
8 / 11

최신글/ 11

01
BFS · Deep Dive · Princeton Algorithms 4/e undirected graph/BreadthFirstPaths 자료·Java SE 21 ArrayDeque/JVMS 21을 대조하고 BfsDemo를 OpenJDK 21.0.11에서 실행

BFS: 같은 거리 layer를 큐로 보존하는 Java 최단 경로 탐색

무가중 그래프에서 발견 시점 방문 처리와 FIFO layer 불변식이 최소 hop을 보장하는 이유를 증명하고, primitive queue·거리·부모 배열의 메모리를 분석한다.

2026. 08. 06. · 12분 읽기
02
DFS · Deep Dive · Princeton Algorithms 4/e DepthFirstPaths·JVMS 21 StackOverflowError/frame 정의를 대조하고 DfsDemo의 cycle·분리 정점·단일 정점을 OpenJDK 21.0.11에서 실행

DFS: 명시적 스택으로 재귀 깊이와 Java 메모리를 통제하기

한 갈래를 끝까지 탐색하는 불변식을 명시적 primitive 스택으로 구현하고, 재귀 frame·방문 시점·순회 순서·BFS와의 메모리 차이를 분석한다.

2026. 08. 06. · 11분 읽기
03
Roadmap · Deep Dive · Princeton Algorithms 4/e 구성·Java SE 21 API·JVMS 21을 직접 대조하고 AlgorithmRoadmapDemo를 OpenJDK 21.0.11에서 컴파일·실행

Java 필수 알고리즘 로드맵: 이름이 아니라 입력 계약으로 고르는 순서

탐색·자료구조·정렬·그래프·최적화 기법을 한 글에 축약하지 않고, 입력 형태와 질의·갱신 비용으로 다음 학습과 구현 선택을 결정하는 로드맵이다.

2026. 08. 06. · 12분 읽기
04
Greedy · Deep Dive · MIT 6.046J greedy 강의 자료·Princeton Algorithms 자료·Java SE 21 Comparator/Arrays API를 대조하고 GreedyDemo를 OpenJDK 21.0.11에서 실행

그리디: 가장 빨리 끝나는 구간 선택을 교환 논증으로 증명하기

활동 선택 문제에서 종료 시간이 가장 이른 선택이 최적인 이유를 교환 논증으로 증명하고, 동전 반례로 지역 최선의 적용 한계와 Java 정렬·메모리 비용을 확인한다.

2026. 08. 06. · 11분 읽기
05
Dijkstra · Deep Dive · Dijkstra 1959 원 논문·Princeton Algorithms 4/e shortest paths·Java SE 21 PriorityQueue API를 대조하고 DijkstraDemo를 OpenJDK 21.0.11에서 실행

다익스트라: 비음수 edge에서 거리 확정을 증명하는 Java 최단 경로

relaxation·최소 우선순위·stale entry가 만드는 거리 불변식을 증명하고, 음수 반례·long overflow·객체 allocation·대안 선택까지 추적한다.

2026. 08. 06. · 14분 읽기
06
Dynamic Programming · Deep Dive · Bellman의 optimality 원리·MIT 6.046J DP 강의 자료·Java SE 21 Arrays API를 대조하고 DynamicProgrammingDemo의 최소·불가능·0·잘못된 동전을 OpenJDK 21.0.11에서 실행

동적 계획법: 상태·점화식·복원으로 동전 최소 개수를 증명하기

동전 최소 개수 문제를 상태와 점화식으로 정의하고, bottom-up 계산·불가능 sentinel·해 복원·greedy 반례·메모리 최적화의 대가를 Java로 검증한다.

2026. 08. 06. · 12분 읽기
07
Linear Search · Deep Dive · Princeton Algorithms 4/e programming model·JLS 21 배열·JVMS 21을 대조하고 LinearSearchDemo 경계 사례를 OpenJDK 21.0.11에서 실행

선형 탐색: 정렬 없이 첫 답을 보장하는 Java 순차 스캔

선형 탐색을 느린 기준선으로 치부하지 않고, 첫·마지막 위치 계약과 조기 종료 정당성, 연속 primitive 배열의 메모리 비용 및 index 구축의 손익분기점을 분석한다.

2026. 08. 06. · 10분 읽기
08
Complexity · Deep Dive · Princeton Algorithms 4/e 분석 절·JVMS 21·JMH/JOL/JFR 공식 문서를 대조하고 두 중복 탐지 구현의 검사 횟수를 OpenJDK 21.0.11에서 실행

알고리즘 복잡도: Big-O 라벨에서 Java 실행 비용 모델까지

입력 크기와 기본 연산을 먼저 정의하고, 점근 표기·amortized cost·보조 공간을 Java 객체 할당 및 실제 측정과 분리해 해석한다.

2026. 08. 06. · 12분 읽기
09
Topological Sort · Deep Dive · Princeton Algorithms 4/e directed graph 자료·Kahn 1962 원 논문·Java SE 21 Queue API를 대조하고 TopologicalSortDemo를 OpenJDK 21.0.11에서 실행

위상 정렬: 진입 차수 0의 의미와 cycle을 검출하는 Java Kahn 알고리즘

DAG 의존 관계에서 indegree와 ready queue의 불변식을 추적하고, 결과 길이로 cycle을 검출하며 결정성·메모리·배포 운영 기준까지 연결한다.

2026. 08. 06. · 11분 읽기
10
Binary Search · Deep Dive · Princeton Algorithms 4/e Binary Search·Oracle Arrays.binarySearch 계약·JLS/JVMS 21을 대조하고 BinarySearchDemo를 OpenJDK 21.0.11에서 실행

이진 탐색: 반열린 구간 불변식으로 첫 위치까지 찾는 Java 구현

정렬 전제와 반열린 후보 구간을 명시하고, lower bound에서 첫 중복 위치·삽입 위치·overflow-safe midpoint가 왜 맞는지 증명한다.

2026. 08. 06. · 10분 읽기