품목정보
발행일 | 2020년 07월 20일 |
---|---|
쪽수, 무게, 크기 | 408쪽 | 860g | 188*257*30mm |
ISBN13 | 9791163031727 |
ISBN10 | 1163031720 |
발행일 | 2020년 07월 20일 |
---|---|
쪽수, 무게, 크기 | 408쪽 | 860g | 188*257*30mm |
ISBN13 | 9791163031727 |
ISBN10 | 1163031720 |
----------------- 01장 알고리즘 기초 ----------------- __01-1 알고리즘이란? ____세 정수의 최댓값 구하기 ____조건문과 분기 ____순서도 기호 살펴보기 __01-2 반복하는 알고리즘 ____1부터 n까지 정수의 합 구하기 ____연속하는 정수의 합을 구하기 위해 값 정렬하기 ____반복 과정에서 조건 판단하기 1 ____반복 과정에서 조건 판단하기 2 ____반복 과정에서 조건 판단하기 3 ____양수만 입력받기 ____직사각형 넓이로 변의 길이 구하기 ____반복문 건너뛰기와 여러 범위 스캔하기 ____다중 루프 알아보기 ----------------- 02장 기본 자료구조와 배열 ----------------- __02-1 자료구조와 배열 ____배열 개념 알아보기 ____리스트와 튜플 알아보기 ____인덱스로 원소에 접근하기 ____슬라이스식으로 원소에 접근하기 ____자료구조의 개념 알아보기 __02-2 배열이란? ____배열 원소의 최댓값 구하기 ____배열 원소의 최댓값을 구하는 함수 구현하기 ____주석과 자료형 힌트 ____재사용할 수 있는 모듈 작성하기 ____모듈 테스트하기 ____배열 원소를 역순으로 정렬하기 ____기수 변환하기(n진수 구하기) ____소수 나열하기 ----------------- 03장 검색 알고리즘 ----------------- __03-1 검색 알고리즘이란? ____검색과 키 ____검색의 종류 __03-2 선형 검색 ____선형 검색 ____보초법 __03-3 이진 검색 ____이진 검색 ____복잡도 __03-4 해시법 ____정렬된 배열에서 원소 추가하기 ____해시법 ____해시 충돌 ____체인법 ____오픈 주소법 ----------------- 04장 스택과 큐 ----------------- __04-1 스택이란? ____스택 알아보기 ____스택 구현하기 ____스택 프로그램 만들기 __04-2 큐란? ____큐 알아보기 ____배열로 큐 구현하기 ____링 버퍼로 큐 구현하기 ____링 버퍼로 큐 프로그램 만들기 ----------------- 05장 재귀 알고리즘 ----------------- __05-1 재귀 알고리즘의 기본 ____재귀 알아보기 ____팩토리얼 알아보기 ____유클리드 호제법 알아보기 __05-2 재귀 알고리즘 분석 ____재귀 알고리즘의 2가지 분석 방법 ____재귀 알고리즘의 비재귀적 표현 __05-3 하노이의 탑 ____하노이의 탑 알아보기 __05-4 8퀸 문제 ____8퀸 문제 알아보기 ____퀸 배치하기 ____분기 작업으로 문제 해결하기 ____한정 작업과 분기 한정법 ____8퀸 문제 해결 프로그램 만들기 ----------------- 06장 정렬 알고리즘 ----------------- __06-1 정렬 알고리즘 ____정렬이란? __06-2 버블 정렬 ____버블 정렬 알아보기 ____셰이커 정렬 알아보기 __06-3 단순 선택 정렬 ____단순 선택 정렬 알아보기 __06-4 단순 삽입 정렬 ____단순 삽입 정렬 알아보기 __06-5 셸 정렬 ____단순 삽입 정렬의 문제 ____셸 정렬 알아보기 __06-6 퀵 정렬 ____퀵 정렬 알아보기 ____배열을 두 그룹으로 나누기 ____퀵 정렬 만들기 ____비재귀적인 퀵 정렬 만들기 ____피벗 선택하기 ____퀵 정렬의 시간 복잡도 __06-7 병합 정렬 ____정렬을 마친 배열의 병합 ____병합 정렬 만들기 __06-8 힙 정렬 ____힙 정렬 알아보기 ____힙 정렬의 특징 ____루트를 삭제한 힙의 재구성 ____힙 정렬 알고리즘 알아보기 ____배열을 힙으로 만들기 ____힙 정렬의 시간 복잡도 __06-9 도수 정렬 ____도수 정렬 알아보기 ----------------- 07장 문자열 검색 ----------------- __07-1 브루트 포스법 ____문자열 검색이란? ____브루트 포스법 알아보기 __07-2 KMP법 ____KMP법 알아보기 __07-3 보이어·무어법 ____보이어·무어법 알아보기 ____문자열 검색 알고리즘의 시간 복잡도 ----------------- 08장 리스트 ----------------- __08-1 연결 리스트 ____연결 리스트 알아보기 ____배열로 연결 리스트 만들기 __08-2 포인터를 이용한 연결 리스트 ____포인터로 연결 리스트 만들기 ____포인터로 연결 리스트 프로그램 만들기 __08-3 커서를 이용한 연결 리스트 ____커서로 연결 리스트 만들기 ____배열 안에 비어 있는 원소 처리하기 ____프리 리스트 ____커서로 연결 리스트 프로그램 만들기 __08-4 원형 이중 연결 리스트 ____원형 리스트 알아보기 ____이중 연결 리스트 ____원형 이중 연결 리스트 ____원형 이중 연결 리스트 만들기 ____원형 이중 연결 리스트 프로그램 만들기 ----------------- 09장 트리 ----------------- __09-1 트리 구조 ____트리의 구조와 관련 용어 ____순서 트리와 무순서 트리 ____순서 트리의 검색 __09-2 이진 트리와 이진 검색 트리 ____이진 트리 알아보기 ____완전 이진 트리 알아보기 ____이진 검색 트리 알아보기 ____이진 검색 트리 만들기 ____이진 검색 트리 프로그램 만들기 찾아보기 |
알고리즘이 어떤건지 잘 몰랐는데 이 책을 통해서 입문할 수 있었습니다.
트리, 리스트 같은 개념과 실제 코드를 구현하는 것은 다르다고 생각하는데, 책의 예제를 따라하면서 감을 잡을 수 있었습니다.
예제가 풍부해서 따라하는 것 만으로도 많은 연습이 되었습니다.
책이 깔끔하고 가독성이 좋습니다.
다만 실제로 이 알고리즘들이 어떻게 사용되는지 실생활 예시가 있으면 좋겠다는 생각이 들었습니다.
213개의 그림과 136개의 파이썬 실전 예제, 분량 : 408쪽
Python은 C, JAVA 같은 프로그래밍 언어에 비해 배우기도 쉽고 간결하다.
몇 년 전, 자료구조와 알고리즘을 공부하려고 했을 때 유명한 책들을 찾아보니까 주로 슈도코드 아니면 C / C++ / JAVA 로 설명되어 있어서 파이썬을 메인 언어로 쓰기로 결심한 난 유튜브나 인강을 통해서 공부했었다. 그래도 요즘엔 파이썬으로 된 책들도 많이 나온 거 같아서 좋다.
이번에 소개할 책 역시 파이썬으로 자료구조와 알고리즘의 이론을 설명하고 구현한 책이며 책을 가볍게 훑어봐도 알 수 있듯이 이 책은 다양한 그림과 표로 친절하게 각 이론들을 설명해준다.
1장 알고리즘 기초 | 2장 기본 자료구조와 배열 | 3장 검색 알고리즘 |
4장 스택과 큐 | 5장 재귀 알고리즘 | 6장 정렬 알고리즘 |
7장 문자열 검색 | 8장 리스트 | 9장 트리 |
자세한 목차는 여기
크게 9개의 장으로 구성되어 있다.
알고리즘 인강도 구매해서 들어봤는데 그거와 비교해도 입문자가 공부하기에 잘 구성된 거 같다.
책에도 적혀있듯이 순서대로 공부하다가 연관성 있는 장은 먼저 공부해도 좋겠다.
이번 서평단에 선정된 후 이지스퍼블리싱에서 내가 구입한 책들을 찾아봤는데 17년도쯤에 같은 시리즈의 C언어 편을 샀었다. 1, 2학년 이후로 C언어를 안 써서 잊고 있었다
목차를 통해 두 책을 비교해보니까 프로그래밍 언어의 특성에서 오는 내용적 차이를 제외하고는 집합 단원이 C언어 편에서만 존재, C언어 편에서는 11장으로 따로 분리되어 있던 해시가 Python 편에서는 3장 검색 알고리즘의 아래(3 - 4)로 들어갔다는 정도의 차이가 있다.
내가 자료구조&알고리즘을 처음 배웠을 때 접한 책은 완전한 코드가 아닌 슈도코드로 설명하고 넘어가는 방식이었다.
프로그래밍 언어를 배우고 상황에 맞게 개념을 자유롭게 적용시킬 수 있는 사람이나 슈도코드에 익숙하고 그것만 봐도 원하는 언어로 코딩을 할 수 있는 사람이면 이해하는 데에 비교적 큰 어려움이 없겠지만 개념 자체는 배웠지만 실제 적용하는 것에 서툰 사람, 입문자에게는 이것도 쉽지 않다.
이런 점에 있어서 이 책은 처음부터 파이썬 코드로 설명, 전체 소스코드도 제공하고 다양한 그림들을 활용해서 각 기법들이 어떠한 절차로 진행되는지를 친절하게 설명해준다.
나는 입문자들에게도 그렇고 어떤 개념을 처음 배울 때는 이러한 방식이 개념을 더 쉽고 더 빠르게 이해하게 해 줘서 효율적일 거라고 생각한다.
특히 재귀, 정렬 알고리즘, 패턴 매칭 기법 같은 내용을 이해할 때 도움될 거 같다
목차만 잘 살펴봐도 알 수 있듯이 먼저, 각 자료구조나 알고리즘의 개념과 관련 연산의 기능에 대해 구체적으로 설명해준다. 그리고 하나의 소주제(기법)를 마칠 때는 프로그램 만들기를 통해 각 주제과 관련된 연산(메서드)들을 자유롭게 실습하면서 개념을 정리할 수 있다.
파이썬 개념을 한번 공부하고 온 사람들에게 바로 자료구조 & 알고리즘을 공부하라고 하면 막막해할 수도 있다.
다행히도 이 책은 '보충 수업', '조금만 더', '용어 정리'라는 코너를 통해 관련 내장 함수나 파이썬을 좀 더 잘 다룰 수 있게 해 줄 팁 등을 제공해 줘서 추가 공부 방향을 잡을 때에도 도움이 될 거다.
이 책의 저자, 베타 테스터가 말했듯 이 책은 위와 같은 특징들을 갖고 있어서
파이썬이라는 언어를 통해 자료구조 & 알고리즘을 처음 접하는 입문자에게도,
파이썬을 어느 정도 다룰 줄 알지만 자료구조나 알고리즘을 적용하기 어려운 사람에게도,
기본적인 자료구조와 알고리즘을 복습하고 싶은 사람에게도 이 책이 잘 맞을 거 같다.
제목 그대로 입문자를 위해 맞춰져 나온 책 같다.
그래서 그런지 내용도 그림도 정말 상세하고 친절하다. 읽으면서도 몇몇 그림은 굳이 이렇게까지 자세하게 안해도 충분히 이해할 수 있을 거 같다는 생각이 살짝 들었지만 프로그램 공부를 조금이라도 한 사람이라면 읽고 원리들을 이해하기 쉽게 써져 있다는 건 분명하다.
이 책으로 기본적인 자료구조와 알고리즘의 기초를 다지고 백준, SWEA, 프로그래머스, 코딩도장 같은 사이트에서 관련 문제들을 충분히 더 풀면서 문제 해결이나 구현 능력을 키우고 좀 더 심화된 알고리즘도 차근차근 배워가면 좋지 않을까?
≪점프 투 파이썬≫으로 파이썬에 입문한 후,
인공지능, 웹 공부를 하면서 파이썬이 편해지고 익숙해져서 나는 파이썬을 더 공부하기로 했다.
이번에 코딩테스트 Java편이 나왔던데 책 구성들을 살펴보니까 하반기에 나올 Python편도 기대된다.
이지스퍼블리싱으로부터 책을 무상으로 제공받아 직접 공부하고 작성한 리뷰입니다.