이 책은 컴퓨터 과학 전공자보다는 컴퓨팅 사고를 학습하는 초보 프로그래머 들을 위한 책입니다. 따라서, 알고리즘의 실행 시간 등의 분석에 초점을 맞추기보다는 주어진 문제에 대하여 분해 및 추상화 등을 활용하여 해결하는 방법을 중점적으로 소개하고자 하였습니다.
설계한 알고리즘을 코딩하는 것에도 초점을 맞추었습니다. 가끔 코딩은 낮은 수준의 기술로 치부하는 경향이 있는데 실제로 초보 프로그래머의 경우에는 주어진 알고리즘을 코딩하는데 어려움을 겪는 경우도 많이 있습니다. 알고리즘이 같다고 하여도 다르게 구현할 수 있으며 코딩은 알고리즘 설계와 다른 영역이기 때문입니다.
따라서, 이 책에서는 하나의 알고리즘을 다양한 방법으로 구현하는 것을 제시하고자 하였습니다. 특히, 파이썬 프로그래밍 언어를 사용하는 경우에는 기존의 코딩 방법과 다르게 구현해야 하는 경우가 발생하는데 기존의 코딩 방법을 따르면 파이썬의 기능들을 충분히 활용하지 못하고, 파이썬의 기능을 많이 사용하면 기존의 코딩 방법과 다르게 되는 경우가 있는데 이 책에서는 다양한 방법으로 구현하고자 하였습니다.
소개하는 알고리즘은 최대한 구현하고자 하였습니다. 어떤 교재에서는 선형 구조, 정렬 및 탐색 알고리즘 일부만 구현하고, 나머지의 경우에는 개념만 설명하는 경우가 있는데 이 책에서는 소개하는 알고리즘에 대해서는 가능한 한 프로그램으로 구현하고자 하였습니다. 경우에 따라서 상용 프로그램처럼 작성하는 것이 어려운 경우에는 교육의 관점에서만 바라보는 형태로 구현하는 경우도 있지만 학습자들에게 도움이 될 수 있도록 최대한 프로그램으로 구현하고자 하였습니다.
CHAPTER 01 리스트
CHAPTER 02 선형 구조
CHAPTER 03 비선형 구조
CHAPTER 04 정렬 알고리즘
CHAPTER 05 탐색 알고리즘
CHAPTER 06 그래프 기반 알고리즘