2018년부터 정보 교과서는 각급 중학교에서 필수이고, 2019년부터는 초등학교에서도 정보 관련 교과를 공부하게 된다. 전 세계 주니어 코딩 열풍에 힘입어 바로 코딩에 입문하고 싶은 학생들도 많고 코딩 교육에 대한 일반인들의 관심도 높아지고 있다. 바로 소프트웨어 개발이 가능할까? 프로그래밍 언어도 공부하고, 기초도 단단히 하고, 두 마리 토끼를 잡을 수는 없을까? 이런 고민에서 출발한 이 책의 설계자 Y박사는 미국 T대학의 컴퓨터공학 박사로 대기업에서 컴퓨터 교육을 담당하면서 누구나 쉽게 접근할 수 있는 코딩 기초 북을 1년 이상 기획하여 집필하였다.
Y박사는 “자료구조를 먼저 공부하고 알고리즘을 공부하라”고 조언한다. 그림으로 자료구조와 알고리즘의 개념을 자세히 설명하는 이 책에 동원된 C 프로그래밍 언어의 소스는 자세한 문법 설명에 동원되었다기 보다 자료구조와 알고리즘이 어떻게 코딩에 녹아드는지를 효율적으로 이해하도록 돕는 기재로 작동한다. 소스와 실행 결과, 그 차이를 보여주면서 ‘이것만은 꼭 기억하세요’ ‘고수로 가는 길’같은 팁 박스와 함께 그림을 동원하여 상세하게 설명하고 있다.
이 책은 자료구조의 기본인 변수와 자료형, 배열, 리스트, 스택, 큐, 트리, 포인터, 연결 리스트와 알고리즘의 가장 기본인 정렬과 검색 알고리즘을 개념 이해를 돕는 그림과 함께 설명함으로써 코딩을 위한 초석을 단단히 놓도록 개념 이해와 확인에 주력했다.
수년 간 세계 제일 재산가였던 빌게이츠의 아성을 깬 아마존 창업자 제프 베조스, 그의 연봉의 20배가 넘는 아마존 웹서비스(AWS)의 CEO 앤디 재시 같은 IT 리더가 되려면 생각하는 힘부터 길러야 가능하다. 천릿길도 한걸음부터라고 코딩 기초를 길러주는 ‘C로 배우는 자료구조와 알고리즘’부터 시작하면 어떨까.
■ 대상 독자
▶중고등학교 정보 교과서를 공부하기 전 기초 지식을 쌓고 싶은 학생
▶전산학, 소프트웨어 공학에 입문하려는 대학생
▶프로그램 개발자나 교육자가 되기 전 기초를 확실하게 다지고 싶은 일반인
■ 저자 소개
Y박사
● 미국 T대학 컴퓨터공학 박사.
● 대기업 컴퓨터 교육 담당.
● 이 책의 총괄 기획자.
한인
● 동국대학교 컴퓨터공학과 공학 박사
● 동국대학교 전산원 컴퓨터공학과 교수
정승태
● 동국대학교 컴퓨터공학과 석사
● (주) 올원 CTO
▶ 저자 소스 링크 https://github.com/jinniahn/book_python_example
목차
■ 목차
1장 자료형과 함께 생각하자
01헝가리언 표기법이 뭐길래 1402변수의 개념과 초기화 16 03변수는 자료형과 묶자 1804변수와 자료형 사용 시 주의점 23
2장 알고리즘이 뭔가요?
05알고리즘의 의미 알기 3006 알고리즘의 3대 요소 3607자료구조와 알고리즘 관계 42
3장 찜질방 사물함, 배열
08메모리의 물리적인 개념 5209메모리의 크기 단위 56 10메모리와 주소와의 관계 5911모든 변수는 메모리에 할당된다 62
12 컴퓨터에서 출력되는 주소는 상대주소이다 6413십진수가 아니라 이진수를 사용하는 이유 66
4장 사물함 열쇠, 포인터
14배열과 포인터는 다르다? 7015배열과 포인터를 사용할 때 발생하는 문제 73 16포인터로 함수의 파라미터 사용 시 문제점 78
17문자열을 다루는 세 가지 방법 8218포인터를 사용한 문자열 처리 85
5장 줄줄이 소시지, 연결 리스트
19 연결 리스트란 9220 연결 리스트의 삽입 알고리즘 96 21 연결 리스트의 삭제 알고리즘 104
22 이중 연결 리스트와 원형 연결 리스트 111
6장 회전 초밥집의 접시, 스택
23 무조건 쌓아라 12224 스택의 구현 126 25 스택의 응용 13126 괄호 계산이 되는 계산기 136
7장 워터 파크 줄서기, 큐
27큐의 개념과 구현 14828큐의 동작 분석 152 29연결 리스트를 사용한 큐의 구현 156
8장 왕족의 족보, 트리
30트리의 개념과 용어 16831트리의 전위 순회 172 32중위 순회 알고리즘 18133후위 순회 알고리즘 185
9장 만능 열쇠, 포인터
34포인터를 사용한 문자열 처리 192 35전문가들의 포인터를 이용한 문자열 다루는 함수 198
36포인터에 대한 필살기 익히기 20437특수 문자를 제거하는 함수 만들기 208
10장 해쉬 알고리즘
38 키-주소 검색 알고리즘 22039 키-맵핑 알고리즘 225 40 해쉬 알고리즘의 데이터 중복 문제 229
41 해쉬 알고리즘의 문제점을 해결하는 방법 231
11장 줄을 서시오 – 정렬 알고리즘 I
42 다양한 정렬 알고리즘 23843 선택 정렬 알고리즘 240 44 삽입 정렬 알고리즘 246
12장 좀 더 빨리 줄을 서시오 – 정렬 알고리즘 II
45버블 정렬 알고리즘 25246셸 정렬 알고리즘 256 474가지의 기본 정렬 알고리즘의 비교 261
13장 보물 찾기 - 검색 알고리즘
48순차 검색 알고리즘 26849순차 검색 알고리즘에서 데이터의 삽입 273 50순차 검색 알고리즘에서 데이터의 삭제 280