ld20***
2023-11-27

복잡한 수식은 최소화하고 이해에 꼭 필요한 수식만 담고 작동 원리를 단번에 이해할 수 있게 도와주는 다양한 그림과 바로 실행하고 확인할 수 있는 108개 소스 코드를 예제로 제공해 알고리즘의 얼개를 완벽히 이해할 수 있도록 구성했다.
이 책의 저자는 반도체 공정 자동화, 통신 장비, 무기체계, 사이버 시큐리티 분야에서 SW를 개발해왔으며 현재는 캘리포니아 소재 스타트업에서 엔지니어로 근무중입니다.
2010년 대한민국학술원 우수도서로 선정된 "뇌를 지배하는 알고리즘 2009" 외에 이것이 C#이다 개정판 2021 뇌를 자극하는 파이썬 3 2016 등을 집필하였습니다.
지은이의 말
좋은 프로그래머가 되려면 눈앞의 문제에 적절한 자료구조와 알고리즘을 적용할 수 있어야 합니다.
요즘 소프트웨어 엔지니어가 많이 사용하는 C#, 자바, 코틀린, 파이썬과 같은 현대 프로그래밍 언어는 리슽, 스택, 큐, 트리 등의 자료구조뿐 아니라 탐색, 정렬 등의 알고리즘을 표준 라이브러리로 제공합니다.
제품이나 서비스를 개발할 때 자료구조나 알고리즘을 직접 구현하기 보다는 이미 검증된 표준 라이브러리 사용을 권장하기도 합니다.
2009년에 출간한 뇌를 자극하는 알고리즘으로부터 13년이 흘러서 리뉴얼 되었습니다.
자료구조와 알고리즘을 처음 배우는 독자가 이 책을 끝까지 읽을 수 있도록 하는 것이 저자의 집필 목표였다고 합니다.
이 책의 구성
학습 목표 : 본격적인 학습에 앞서 본문 내용을 친숙하게 받아들일 수 있도록 각 장의 핵심 개념과 대략적인 학습 흐름을 제시합니다.
연습문제 : 응용력 향상을 위해 본문에서 다뤘던 내용을 바탕으로 다양한 문제를 제시합니다.
독자스스로 해답을 찾아가는 과정에서 한 단계 레벨 업 하기를 바라는 마음으로 연습문제 해답은 별도로 제공하지 않습니다.
여기서 잠깐 : 보충 설명, 참고 사항, 관련 용어 등을 본문과 분리하여 설명합니다.
NOTE : 학습을 진행하면서 좋은 내용이나 혼동하기 쉬운 내용을 설명합니다.
비타민 퀴즈 : 학습한 내용을 곧바로 점검할 수 있도록 간단한 퀴즈를 제시합니다.
학습 로드맵
01 자료구조 - 리스트, 스택, 큐, 트리
02 알고리즘 : 정렬, 탐색, 우선순위 큐와 힙, 해시 테이블, 그래프, 문자열 탐색
03 알고리즘 설계 기법 - 알고리즘 성능 분석, 분학 정복, 동적 계획법, 탐욕 알고리즘, 백트래킹
자료구조
자료구조 Data Structure 는 컴퓨터가 데이터를 효율적으로 다룰 수 있게 도와주는 데이터 보관 방법과 데이터에 관한 연산의 총체를 뜻합니다.
자료구조는 단순 자료구조와 복합 자료구조로 나뉩니다.
이 책에서는 단순 자료구조는 다루지 않고 복합자료구조만을 다루고 있습ㄴ디ㅏ.
복합 자료구즌ㄴ 다시 선형 자료 구조와 비선형 자료구조로 나뉩니다.
선형 자료구조는 우리에게 친숙한 배열, 링크드 리슽, 스택, 큐 등이 여기에 해당됩니다.
비선형 자료구조는 선형 자료구조와 달리 데이터 요소를 비순차적으로 연결합ㄴ디ㅏ.
트리와 그래프가 여기에 해당됩니다.
여러분이 자료구조와 관련해서 알아두었으면 하는 개념이 한가지 더 있습니다. 바로 추상 데이터 형식 다시 말해 ADT 인데요
이것은 자료구조와 동작 방법을 표현하는 데이터 형식입니다. 정리하자면 ADT는 자료구조가 갖춰야 할 일련의 연산이라고 할 수 있습니다.
자료구조를 왜 공부해야 하나요?
첫째 자료구조의 내부를 이해하면 라이브러리에서 엉뚱한 자료구조를 선택하는 일은 피할 수 있습니다.
동일한 ADT를 사용하더라도 자료구조에 따라 애플리케이션 성능이 크게 다라질 수 있습니다.
둘째 자료구조는 알고리즘이 데이터를 효율적으로 사용할 수 있게 도와주는 핵심 부품 역할을 하기때문입니다.
이 책은 자료구조와 알고리즘을 처음 접하는 분들을 위한 책입니다.
C언어를 기본 바탕으로 쓰여져 있지만 다른 언어를 써본 독자들이라면 누구나 이해하기 쉽도록 쓰여져 있습니다.
프로그래밍의 기본이라고 할 수 있는 자료구조와 알고리즘을 처음부터 배워보고 싶은 분들에게 한번 읽어보기를 권해드립니다.