
9
대상 독자
이 책을 읽는 독자라면 파이썬 같은 프로그래밍 언어에 관한 기본 지식이 있을 것이다. 프로그
래밍 경험이 없다면 먼저 프로그래밍 언어를 배우고 나서 책으로 돌아오길 권장한다. 이 책에
서는 프로그래머와 비프로그래머 모두가 접근하기에 용이한 파이썬을 사용한다.
알고리즘은 소프트웨어 응용 프로그램에서 빈번히 발생하는 일반적인 문제를 해결하도록 설계
되었다. 필자는 학부생에게 알고리즘을 가르칠 때 알고리즘 개념과 학생들의 배경지식 사이의
간극을 줄이고자 노력했다. 많은 교과서가 알고리즘을 너무 어렵고 간략하게 설명해왔다. 학습
자료를 탐색하는 방법을 안내해주지 않으면 학생들이 스스로 알고리즘을 배우기는 어렵다.
다음 페이지의 [그림
P
-
1
]을 통해 필자가 이 책을 집필하는 목표를 설명하고자 한다. 그림에
나열한 여러 자료구조는
32
비트 정숫값 혹은
64
비트 부동소수점숫값과 같이 크기가 고정된 기
본 타입을 사용해 정보를 구성하는 방법을 보여준다. 이진 배열 탐색과 같은 일부 알고리즘은
자료구조에서 직접 작동한다. 반면에 그래프 알고리즘을 비롯해 좀 더 복잡한 알고리즘은 앞으
로 필요에 따라 소개할 스택이나 우선순위 큐와 같은 기본 추상 데이터 타입에 의존한다. 이런
데이터 타입은 알맞은 자료구조를 선택하면 효율적으로 구현되는 기본 연산을 제공한다. 책이 ...