처음 만나는 알고리즘 First Step 시리즈 3
이토 시즈카 지음, 정인식 옮김 / 제이펍 / 2017년 4월
평점 :
절판


<처음 만나는 알고리즘>은 알고리즘 입문서입니다.

저자는 이 책이 알고리즘을 배우고 싶지만 너무 어려워 난감해하는 사람들을 위해서 알기 쉽게 썼다고 말합니다.

그건 어느 정도 인정합니다. 그러나 대상이 누구냐에 따라서 다를 수 있습니다. 

알고리즘의 기본 개념에 대해서는 정말 쉽게 잘 설명되어 있습니다. 첫 장은 수월하게 넘어갑니다.

우선 알고리즘이란 무엇인지를 알려줍니다. 알고리즘이란 '문제나 과제를 해결하기 위한 처리 절차를 하나하나 구체적인 순서에 따라 표현한 아이디어나 생각'이라는 것.

일상에서 쓰이는 알고리즘으로는, 요리의 레시피나 음악의 악보, 가전제품 등의 사용설명서가 있습니다.

제가 알고리즘에 대해 배우고 싶었던 이유는 요즘 아이들이 배워야 할 필수 교육이 코딩이기 때문입니다. 부모 입장에서 변화하는 미래를 준비하는 교육적 관심이라고 볼 수 있습니다. 과거에는 영어나 중국어와 같은 외국어 교육이 대세였다면 지금은 프로그래밍 언어가 대세가 아닌가 싶습니다.

프로그래밍 언어는 컴퓨터에 지시하기 위한 인공 언어입니다. 알고리즘을 프로그래밍 언어로 작성한 것이 프로그램입니다. 그러니까 알고리즘을 공부하면 좋은 알고리즘을 만들 수 있습니다. 알고리즘을 제대로 배운 사람과 그렇지 않은 사람 간에는 프로그램 작성 능력에 있어서 현격한 차이가 있다는 연구 결과도 있습니다.

알고리즘은 크게 탐색, 정렬, 수치 계산, 문자열 탐색으로 나눌 수 있습니다. 그리고 각 종류별로 유명한 알고리즘이 있습니다.

이 책에서는 이들 중 가장 기본적인 알고리즘을 추려 한 장에 하나씩 설명하고 있습니다.

선형 탐색법(리니어 서치) ...... 맨 앞부터 순서대로 찾는다.

이진 탐색법(바이너리 서치) ...... 범이를 절반씩 추려가면서 찾는다.

해시 탐색법 ...... 계산해서 저장 위치를 찾는다.

단순 정렬법(선택 소트) ...... 최솟(댓)값을 선택하여 맨 앞부터 순서대로 나열한다.

단순 교환법(버블 소트) ...... 데이터를 올바른 위치에 삽입하면서 자리를 바꿔 나열한다.

퀵 정렬 ...... 기준 데이터를 기반으로 대소 분할을 반복하여 자리를 바꿔 나열한다.

에라토스테네스의 체 ......소수를 구하는 알고리즘

유틀리드 알고리즘 ...... 최대공약수를 구하는 알고리즘

바로 이 부분부터 머리가 지끈거리기 시작했습니다. 처음 만나는 알고리즘에서 수학의 향기가 짙게 풍겨서... 수학을 좋아하는 사람에게는 알고리즘 자체가 신나는 게임처럼 느껴지겠지만 그렇지 않은 사람에게는 험난한 도전일 수 있습니다. 저는 후자의 경우라서 이 책을 읽는 내내 고전을 면치 못했습니다. 단숨에 읽지 못하고 쉬엄쉬엄 나눠 읽으면서 공부하는 자세로 읽었습니다. 결론적으로 알고리즘의 기본만 겨우 습득했습니다. 끝까지 읽었다는 데에 의의를 두고 싶습니다. 완벽한 이해를 위해서는 몇 번이라도 반복해서 봐야 할 것 같습니다. 중요한 건 알고리즘을 처음 만나는 분들께 추천할 만한 책이라는 것입니다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo