목차
Lesson 01 알고리즘 시작하기 = 14
STEP 01 일상 생활과 알고리즘 = 15
일상 속의 알고리즘 = 15
STEP 02 컴퓨터와 알고리즘 = 16
컴퓨터는 바보 또는 천재 = 16
STEP 03 알고리즘이란 = 17
알고리즘의 개요 = 17
알고리즘의 분석 기준 = 18
알고리즘과 전산학의 관계 = 19
알고리즘의 연구 분야 = 20
STEP 04 표기법 = 21
시간 복잡도의 중요성 = 22
표기법이란 = 22
표기법에 따른 알고리즘 유형 = 24
연습문제 = 27
Lesson 02 알고리즘을 순서도로 표현하기 = 28
STEP 01 알고리즘과 순서도 = 29
STEP 02 순서도의 작성 방법 = 31
STEP 03 순서도에 사용되는 기호들 = 31
STEP 04 3가지 기본 구조 = 38
연습문제 = 43
Lesson 03 프로그래밍 기초 다지기 = 44
STEP 01 변수는 저장 공간이다 = 45
변수란 = 45
STEP 02 기본 자료형과 사용자 정의 자료형 = 50
기본 자료형이란 = 50
사용자 정의 자료형 = 52
STEP 03 흐름을 제어하는 제어문 = 59
제어문이란 = 59
STEP 04 배열이란 = 64
첨자를 이용하여 배열 요소에 접근하기 = 65
STEP 05 포인터란 = 68
포인터 변수에 값을 저장하기 = 69
포인터 변수의 값 참조하기 = 71
포인터로 배열 참조하기 = 72
STEP 06 함수 = 74
함수의 선언과 정의 = 76
함수의 호출과 리턴값 = 76
연습문제 = 79
Lesson 04 재미있는 알고리즘(1) = 80
STEP 01 유클리드의 최대공약수 = 81
최대 공략수란 = 81
유클리드 알고리즘 = 82
STEP 02 하노이의 탑 = 85
하노이탑 문제 정의 = 86
하노이 탑의 규칙 찾기 = 87
STEP 03 소수(Prime Number) = 94
연습문제 = 99
Lesson 05 재미있는 알고리즘(2) = 100
STEP 01 마방진 = 101
마방진의 유래 = 101
홀수 마방진 = 102
4의 배수 마방진 = 108
STEP 02 체조/다이빙 점수 계산 = 117
체조와 다이빙 경기의 점수 계산 = 117
연습문제 = 121
Lesson 06 첨자로 빠르게 접근하는 배열 = 122
STEP 01 자료구조와 알고리즘 = 123
STEP 02 배열의 개요 = 123
배열의 필요성 = 123
STEP 03 배열의 차원 = 128
STEP 04 배열 다루기 = 129
배열에 요소 삽입하기 = 129
배열의 요소 삭제하기 = 130
배열의 특정 요소 찾기 = 131
STEP 05 배열의 장점과 단점 = 136
배열의 장점 = 136
배열의 단점 = 137
STEP 06 첨자 다루기 = 137
행렬 예제 1 = 138
행렬 예제 2 = 141
연습문제 = 144
Lesson 07 링크로 이어진 연결 리스트 = 146
STEP 01 연결 리스트의 필요성 = 147
배열의 한계점 = 147
STEP 02 연결 리스트 = 148
연결 리스트란 = 148
연결 리스트와 배열의 비교 = 149
연결 리스트의 종류 = 150
STEP 03 단순 연결 리스트 구현하기 = 151
STEP 04 이중 연결 리스트 구현하기 = 160
연습문제 = 169
Lesson 08 최근 데이터부터 출력되는 스택 = 170
STEP 01 스택 개요 = 171
스택(Stack)이란 = 171
STEP 02 배열로 스택 구현하기 = 173
STEP 03 연결 리스트로 스택 구현하기 = 182
연습문제 = 191
Lesson 09 입력된 순서대로 출력하는 큐 = 192
STEP 01 큐의 개요 = 193
큐(Queue)란 = 193
STEP 02 배열로 큐 구현하기 = 194
STEP 03 리스트로 큐 구현하기 = 203
연습문제 = 213
Lesson 10 계층적으로 구성되는 트리 = 214
STEP 01 트리의 개요 = 215
트리란 = 215
STEP 02 이진 트리 = 216
이진 트리란 = 216
STEP 03 이진 트리의 운행 = 222
트리 운행이란 = 222
연습문제 = 236
Lesson 11 데이터를 재배열하는 정렬 알고리즘(1) = 238
STEP 01 정렬이란 = 239
STEP 02 선택 정렬 = 239
선택 정렬(Selection Sort)이란 = 239
개선된 선택 정렬 알고리즘 = 242
STEP 03 버블 정렬 = 245
버블 정렬(Bubble Sort)이란 = 245
개선된 버블 정렬 알고리즘 = 248
STEP 04 삽입 정렬 = 252
삽입 정렬(Insertion Sort)이란 = 252
STEP 05 쉘 정렬 = 256
쉘 정렬(Shell Sort)이란 = 256
연습문제 = 261
Lesson 12 데이터를 재배열하는 정렬 알고리즘(2) = 262
STEP 01 퀵 정렬 = 263
퀵 정렬(Quick Sort)이란 = 263
STEP 02 힙 정렬 = 268
힙 정렬(Heap Sort)이란 = 268
STEP 03 병합 정렬 = 276
병합 정렬(Merge Sort)이란 = 276
STEP 04 기수 정렬 = 282
기수 정렬(Radix Sort)이란 = 282
연습문제 = 292
Lesson 13 특정 데이터를 찾는 검색 알고리즘(1) = 294
STEP 01 선형 검색 = 295
선형 검색이란 = 295
STEP 02 이분 검색 = 298
이분 검색이란 = 298
STEP 03 피보나치 검색 = 303
피보나치 검색이란 = 303
연습문제 = 314
Lesson 14 특정 데이터를 찾는 검색 알고리즘(2) = 316
STEP 01 보간 검색 = 317
보간 검색이란 = 317
STEP 02 이진 검색 트리 = 323
이진 검색 트리란 = 323
연습문제 = 334
Lesson 15 데이터를 감추는 암호화 알고리즘 = 336
STEP 01 암호의 개요 = 337
암호란 = 337
암호 기법에 따른 분류 = 339
STEP 02 전이 암호화 = 341
전이 암호화란 = 341
STEP 03 대치 암호화 = 347
대치 암호화란 = 347
STEP 04 XOR 암호화 = 355
XOR 암호화란 = 355
연습문제 = 363
Lesson 16 데이터 크기를 줄이는 압축 알고리즘 = 364
STEP 01 압축 = 365
압축이란 = 365
STEP 02 Run-Length 압축 알고리즘 = 366
Run-Length 압축이란 = 366
STEP 03 허프만 압축 알고리즘 = 378
허프만 압축 알고리즘이란 = 378
연습문제 = 397
Appendix 01 프로그램 준비하기 = 398
Appendix 02 연습문제 정답 = 402