BOOKSEEK BOOK NOTES
쉽게 배우는 알고리즘 (3판)
알고리즘을 공부한다는 것이 정답 코드를 많이 기억하는 일인지 의문이 들 때가 있습니다. 『쉽게 배우는 알고리즘』은 설계와 분석을 함께 다루는 교재입니다. 어떤 작업을 하려는지 설명하고 그 작업에 걸리는 시간과 성립하는 이유를 살펴봅니다. 익숙한 문제의 해법을 알아보는 수준에서 벗어나 낯선 문제를 나누고 논리적으로 설명하고 싶은 독자에게 맞습니다. 이번에 소개하는 판본은 2024년의 3판입니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
책의 기본 정보
- 출판사
- 한빛아카데미
- 출간일
- 2024-01-03
- 분량
- 576쪽
- ISBN
- 9791156640103
이 책에서 공부할 수 있는 내용
이 책에서는 분석과 수학적 표현, 정렬과 검색의 조건, 설계 기법과 논리을 다룹니다. 관심 있는 항목을 아래 설명과 함께 살펴보세요.
분석과 수학적 표현
- 수행 시간·점근적 표기·점화식을 연결해 알고리즘의 비용을 설명합니다.
정렬과 검색의 조건
- 정렬·검색 트리·해시 테이블의 연산과 성능을 비교합니다.
설계 기법과 논리
- 귀납적 사고와 동적 프로그래밍 등 문제를 나누는 방법을 공부합니다.
관련 주제의 학습 사항: 알고리즘 입문 책 추천
어떤 내용을 다루나요?
알고리즘을 공부한다는 것이 정답 코드를 많이 기억하는 일인지 의문이 들 때가 있습니다. 『쉽게 배우는 알고리즘』은 설계와 분석을 함께 다루는 교재입니다. 어떤 작업을 하려는지 설명하고 그 작업에 걸리는 시간과 성립하는 이유를 살펴봅니다. 익숙한 문제의 해법을 알아보는 수준에서 벗어나 낯선 문제를 나누고 논리적으로 설명하고 싶은 독자에게 맞습니다. 이번에 소개하는 판본은 2024년의 3판입니다.
시작 부분은 알고리즘의 수행 시간과 재귀, 귀납적 사고를 다룹니다. 여러 절차를 모두 실행해본 뒤 빠른 것을 고르는 방법과, 절차의 구조에서 필요한 작업을 분석하는 방법은 다릅니다. 책에서는 점근적 표기를 직관적인 설명과 수학적인 정의로 구분해 살펴볼 수 있습니다. 기호가 낯설다면 한 번에 모두 외우려 하기보다 어떤 비교를 위해 그 표기를 쓰는지 묻는 편이 이후 분석과 연결하기 좋습니다.
점화식을 다루는 장은 문제를 작게 나누는 과정과 전체 비용 사이를 연결합니다. 재귀가 끝나는 조건만 확인해서는 전체 수행 시간을 설명할 수 없는 경우가 있습니다. 작은 문제를 몇 개 만들며 그 밖에 어떤 작업이 남는지 분리해보는 것입니다. 반복 대치나 추정과 증명, 마스터 정리 같은 항목을 자신의 이해 수준에 맞춰 읽으며 같은 질문에 다른 분석 도구를 적용하는 방식을 비교할 수 있습니다.
정렬은 3판에서 다시 쓰고 확장한 부분입니다. 기초 정렬과 여러 고급 정렬, 비교 정렬의 하한과 특수 정렬을 함께 다룹니다. 알고리즘의 종류를 차례로 암기하기보다 비교의 전제가 무엇인지 보는 독서가 어울립니다. 어느 입력을 가정하는지, 무엇을 비교하고 옮기는지 적어보면 이름이 비슷한 방법도 다른 작업의 조합으로 보입니다. 실제 성능 비교 항목도 이론적인 설명과 나누어 살펴볼 수 있습니다.
검색 트리와 해시 테이블, 집합의 처리는 알고리즘이 자료구조의 선택과 떨어질 수 없다는 점을 보여주는 범위입니다. 저장할 데이터와 허용할 연산을 먼저 정하지 않으면 효율의 의미도 분명하지 않습니다. 트리에서 검색하고 삽입·삭제하는 과정을 읽거나 해시 충돌을 해결하는 방식을 비교할 때에는, 연산 뒤에도 유지해야 할 조건을 함께 표시해보세요. 코드의 결과만 확인하는 공부에서 구조와 논리를 설명하는 공부로 무게가 옮겨갑니다.
동적 프로그래밍 등 설계 기법으로 범위를 넓히면서 문제 사이의 관계를 찾는 일이 중요해집니다. 이미 아는 해법과 닮았다는 인상만으로 적용하기보다, 문제를 나눌 수 있는 방식과 이전 답을 이용할 수 있는 조건을 확인해야 합니다. 이 책은 종합예제와 요약, 연습문제를 통해 여러 항목을 다시 묶도록 구성됐습니다. 해설을 읽기 전 자신이 설명할 수 있는 부분과 아직 증명하지 못한 부분을 나누어 적어볼 수 있습니다.
출판사는 대학 강의용으로 개발한 책이며 연습문제의 해답을 제공하지 않는다고 명시합니다. 독학이라면 매 문제의 완성된 답을 바로 확인하는 방식보다 정의와 절차를 자신의 말로 적고 사례를 직접 만드는 공부를 계획하는 편이 맞습니다. 그림 중심 입문서보다 많은 분석과 수학적 표현을 읽을 준비가 된 독자가 비교할 만합니다. 제목의 쉬움을 가벼운 읽기로 받아들이기보다 논리를 따라갈 설명이 있는 교재라는 관점에서 고를 수 있습니다.
특징
알고리즘의 설계와 분석을 함께 다룹니다. 방법이 왜 맞고 어떤 비용을 요구하는지 설명하는 공부에 적합합니다.
재귀·귀납적 사고와 점화식을 포함합니다. 작은 문제와 전체 수행 시간의 관계를 살펴볼 수 있습니다.
3판의 정렬 설명은 수정·확장됐습니다. 기초 정렬부터 비교의 전제와 성능까지 함께 읽는 구성입니다.
종합예제와 연습문제가 있는 대학 교재입니다. 연습문제 해답 미제공 안내를 고려해 학습 계획을 정할 수 있습니다.
이 책에서 주로 다루는 내용
- 분석과 수학적 표현
- 정렬과 검색의 조건
- 설계 기법과 논리
작가 소개
문병로는 알고리즘 설계·분석과 최적화 문제를 연구해온 컴퓨터과학자입니다. 자료구조와 알고리즘 관련 교재를 집필했으며, 문제의 관계를 찾아 체계적으로 사고하는 방법을 설명합니다.