bookseek.
◎ 한국어 ⌄
쉽게 배우는 자료구조 with 파이썬 책 표지

BOOKSEEK BOOK NOTES

쉽게 배우는 자료구조 with 파이썬

문병로 지음

자료구조 이름을 설명할 수 있는데 직접 구현하려면 빈 화면 앞에서 멈추는 경우가 있습니다. 『쉽게 배우는 자료구조 with 파이썬』은 그 간격을 메우려는 기본서입니다. 추상 데이터 타입과 재귀, 알고리즘의 성능을 먼저 짚고 파이썬으로 자료구조를 구성합니다. 사용법을 빨리 훑는 독서보다 연산이 성립하는 이유와 구현의 논리를 차근차근 정리하려는 독자에게 가깝습니다. 대학 교재의 구성으로 공부하고 싶은 경우에 비교할 만합니다.

구매하기

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

책의 기본 정보

출판사
한빛아카데미
출간일
2022-01-16
분량
448쪽
ISBN
9791156645757

이 책에서 공부할 수 있는 내용

이 책에서는 추상화와 재귀, 성능을 읽는 표기, 검색 구조의 구현을 다룹니다. 관심 있는 항목을 아래 설명과 함께 살펴보세요.

추상화와 재귀

  • 자료구조의 추상 데이터 타입과 재귀적 표현을 구현의 전제로 정리합니다.

성능을 읽는 표기

  • 수행 시간과 점근적 표기를 통해 입력 크기와 작업량의 관계를 살펴봅니다.

검색 구조의 구현

  • 리스트·트리·해시 테이블의 연산을 코드와 성능의 관점에서 비교합니다.

어떤 내용을 다루나요?

자료구조 이름을 설명할 수 있는데 직접 구현하려면 빈 화면 앞에서 멈추는 경우가 있습니다. 『쉽게 배우는 자료구조 with 파이썬』은 그 간격을 메우려는 기본서입니다. 추상 데이터 타입과 재귀, 알고리즘의 성능을 먼저 짚고 파이썬으로 자료구조를 구성합니다. 사용법을 빨리 훑는 독서보다 연산이 성립하는 이유와 구현의 논리를 차근차근 정리하려는 독자에게 가깝습니다. 대학 교재의 구성으로 공부하고 싶은 경우에 비교할 만합니다.

앞부분의 재귀와 귀납적 사고는 이후 구조를 읽는 준비가 됩니다. 재귀 함수를 단지 짧게 쓰는 문법으로 생각했다면 문제를 더 작은 같은 형태로 표현하는 관점을 살펴볼 수 있습니다. 책에서 제시한 구조를 따라가며 멈추는 조건과 다음 호출의 대상을 구분해보세요. 코드를 끝까지 추적하는 일과 전체 구조가 왜 맞는지 생각하는 일을 오가야 하므로, 이미 알고 있는 문법도 논리의 관점에서 다시 보게 됩니다.

수행 시간과 복잡도를 다루는 부분에서는 여러 점근적 표기를 구분합니다. 특정 컴퓨터에서 한 번 실행한 결과와 입력의 크기에 따라 작업이 늘어나는 경향은 같은 정보가 아닙니다. 이 책을 읽으며 구현을 비교할 때에는 어떤 연산을 세는지부터 정리하는 편이 좋습니다. 더 빠른 코드를 찾으려는 마음에 앞서 무엇을 같은 조건으로 비교할지 묻는 것입니다. 자료구조의 효율을 설명하는 언어를 익히는 과정으로 볼 수 있습니다.

파이썬 기초도 별도로 다룹니다. 자료형과 제어문뿐 아니라 가변·불변 타입, 클래스와 순회 가능한 클래스 등 구현을 읽는 데 필요한 항목을 확인할 수 있습니다. 다만 파이썬 전체를 처음 배우는 강좌와 목적이 같지는 않습니다. 문법을 한 번 배운 독자가 자료구조 코드에서 막히는 부분을 돌아보는 자리로 생각하면 쓰임이 분명합니다. 코드가 수행되는 방법과 자료가 표현되는 방법을 함께 살펴볼 수 있는 준비입니다.

리스트와 연결 리스트, 스택과 큐를 구현하는 과정에서는 연산을 하나씩 분리해 볼 수 있습니다. 원소를 저장했다는 결과만 확인하지 않고 구조가 유지해야 할 조건을 적어보는 것이 좋습니다. 비어 있는 경우와 원소가 하나 있는 경우도 생각해보면 구현의 경계가 드러납니다. 책의 코드를 단순히 옮겨 적는 데서 멈추지 않고 자신이 바꾼 코드에서도 같은 조건이 유지되는지 묻는 공부에 이 구성을 활용할 수 있습니다.

검색 트리와 해시 테이블, 균형을 유지하는 트리 등으로 넘어가면 자료구조의 선택과 성능의 관계를 더 깊게 다루게 됩니다. 앞에서 배운 재귀와 복잡도 이야기가 별개의 이론이 아니라 구현을 설명하는 도구가 되는 구간입니다. 어려운 구조의 이름을 먼저 늘리기보다 검색·삽입·삭제의 절차를 앞의 구조와 비교해보세요. 새로운 구조를 배운다는 것이 기존 작업을 다른 조건에서 성립하게 만드는 일임을 생각할 수 있습니다.

2022년 종이책은 기본 구조와 구현 논리를 공부하는 목적에 선택했습니다. 출판사는 대학 강의용 교재로 개발한 책이며 연습문제 해답을 제공하지 않는다고 안내합니다. 혼자 공부한다면 정답을 바로 확인할 수 있다는 기대보다 실행 결과와 구조의 조건을 스스로 점검하는 계획을 세우는 편이 맞습니다. 짧은 그림 설명으로 개념을 접한 뒤 구현과 분석을 함께 깊게 다루고 싶은 독자가 이 책의 구성을 비교해볼 수 있습니다.

특징

추상 데이터 타입과 재귀를 구현보다 앞에서 정리합니다. 코드의 규칙과 표현을 함께 공부할 수 있습니다.

수행 시간과 점근적 표기를 다룹니다. 구조의 차이를 효율의 관점으로 설명하려는 독자에게 맞습니다.

파이썬의 클래스와 관련 기초를 포함합니다. 자료구조 구현에서 필요한 언어 지식을 돌아볼 수 있습니다.

대학 강의용 교재이며 연습문제 해답은 제공하지 않습니다. 독학에서는 자기 점검 방법을 별도로 마련할 필요가 있습니다.

이 책에서 주로 다루는 내용

  • 추상화와 재귀
  • 성능을 읽는 표기
  • 검색 구조의 구현

작가 소개

문병로는 알고리즘 설계와 분석, 최적화 문제를 연구해온 컴퓨터과학자입니다. 자료구조와 알고리즘의 원리를 교재로 정리했으며, 이 책에서는 파이썬 구현과 문제 해결의 논리를 함께 다룹니다.

이 책과 함께 읽는 주제