서브메뉴

본문

Do it! 자료구조와 함께 배우는 알고리즘 입문: C 언어 편 (전면 개정판)
Do it! 자료구조와 함께 배우는 알고리즘 입문: C 언어 편 (전면 개정판)
저자 : 시바타 보요
출판사 : 이지스퍼블리싱
출판년 : 2022
ISBN : 9791163034032

책소개


기업 코딩 테스트와 모든 시험의 기초가 되는 ‘자료구조와 알고리즘’!
도해 230개, 실습 예제 113개, 연습 문제 100개로 쉽게! 정확하게! 배운다!


자료구조와 알고리즘은 국내외 IT 기업의 면접과 코딩 테스트에서 중요한 역량이다. 이는 단순히 개념만 이해한다고 해서 바로 실전에 사용하기가 힘들다. 하나하나 자신의 손으로 코딩하고 결과를 확인해 보면서 컴퓨터가 어떻게 데이터를 저장하고 문제를 해결하는지 직접 경험해야 실전에서도 막힘없이 사용할 수 있다.

새롭게 단장한 『Do it! 자료구조와 함께 배우는 알고리즘 입문 - C 언어 편(전면 개정판)』은 전편보다 풍부한 도해와 예제로 자료구조와 알고리즘의 개념을 더 쉽게 이해할 수 있도록 구성했다. 또한 다양한 C 언어 표준 라이브러리를 담아 실무에 도움되는 예제들을 추가했다. 엄선한 실습 예제 113개와 연습 문제 100개를 직접 코딩하다 보면 자연스럽게 C 언어 프로그래밍 실력까지 더 높일 수 있을 것이다.

목차


---------------
01 기본 알고리즘
---------------
__01-1 알고리즘이란?
____세 정수의 최댓값 구하기
____조건 판단과 분기 살펴보기
____순서도의 기호 살펴보기

__01-2 반복
____1부터 n까지 정수의 합 구하기
____양수만 입력하기
____다중 루프 다루기

---------------
02 기본 자료구조
---------------
__02-1 배열이란?
____자료구조 정의하기
____배열 다루기
____메모리 할당과 동적 객체 생성하기
____배열을 동적으로 생성하기
____배열 요소의 최댓값 구하기
____배열 요소를 역순으로 정렬하기
____기수 변환하기
____소수 나열하기
____다차원 배열 만들기
____날짜를 계산하는 프로그램 만들기

__02-2 구조체란?
____구조체 살펴보기
____구조체 배열로 구현하기

---------------
03 검색 알고리즘
---------------
__03-1 검색 알고리즘이란?
____검색과 키 살펴보기
____배열에서 검색하기

__03-2 선형 검색
____선형 검색 다루기
____보초법으로 검색 다루기

__03-3 이진 검색
____이진 검색 다루기
____복잡도 살펴보기
____정렬된 배열에서 검색하는 bsearch 함수 알아보기

---------------
04 스택과 큐
---------------
__04-1 스택이란?
____스택 알아보기
____스택 만들기

__04-2 큐란?
____큐 알아보기
____배열로 큐 만들기
____링 버퍼로 큐 만들기

---------------
05 재귀 알고리즘
---------------
__05-1 재귀의 기본
____재귀 알아보기
____순차곱셈(팩토리얼) 구하기
____유클리드 호제법 살펴보기

__05-2 재귀 알고리즘의 분석
____재귀 알고리즘 분석하기
____재귀 알고리즘의 비재귀적 표현 살펴보기
____메모이제이션 알아보기

__05-3 하노이의 탑
____하노이의 탑 살펴보기

__05-4 8퀸 문제
____8퀸 문제 정의하기
____퀸 놓기
____가지 뻗기
____분기 한정법 다루기
____8퀸 문제를 푸는 프로그램 완성하기

---------------
06 정렬 알고리즘
---------------
__06-1 정렬
____정렬 정의하기

__06-2 버블 정렬
____버블 정렬 알아보기

__06-3 단순 선택 정렬
____단순 선택 정렬 알아보기

__06-4 단순 삽입 정렬
____단순 삽입 정렬 알아보기

__06-5 셸 정렬
____단순 삽입 정렬의 특징 이해하기
____셸 정렬 살펴보기

__06-6 퀵 정렬
____퀵 정렬 살펴보기
____배열을 두 그룹으로 나누기
____퀵 정렬하기
____비재귀적인 퀵 정렬하기
____qsort 함수를 사용해 정렬하기

__06-7 병합 정렬
____정렬을 마친 배열 병합하기
____병합 정렬하기

__06-8 힙 정렬
____힙 정의하기
____힙 정렬 알아보기
____배열로 힙 만들기
____힙 정렬의 시간 복잡도 이해하기

__06-9 도수 정렬
____도수 정렬하기

---------------
07 문자열 검색
---------------
__07-1 문자열의 기본
____문자열 정의하기
____문자열 리터럴 알아보기
____배열에 문자열 저장하기
____포인터로 문자열 나타내기
____문자열의 길이 구하기
____문자열에서 문자 검색하기
____문자열의 대소 관계 비교하기

__07-2 브루트-포스법
____문자열 검색 정의하기
____브루트-포스법으로 검색하기

__07-3 KMP법
____KMP법 알아보기

__07-4 보이어-무어법
____보이어-무어법 살펴보기
____strstr 함수 알아보기

---------------
08 리스트
---------------
__08-1 선형 리스트
____선형 리스트 정의하기
____배열로 선형 리스트 만들기

__08-2 포인터를 이용한 연결 리스트
____포인터로 연결 리스트 만들기

__08-3 커서를 이용한 연결 리스트
____커서로 연결 리스트 만들기
____배열의 비어 있는 요소 처리하기
____프리 리스트 구현하기

__08-4 원형 이중 연결 리스트
____원형 리스트 알아보기
____이중 연결 리스트 알아보기
____원형 이중 연결 리스트 만들기

---------------
09 트리
---------------
__09-1 트리란?
____트리 정의하기
____순서 트리와 무순서 트리 정의하기
____순서 트리의 탐색 방법 알아보기

__09-2 이진트리와 이진검색트리
____이진트리 정의하기
____완전이진트리 정의하기
____이진검색트리 살펴보기
____이진검색트리 만들기

---------------
10 해시
---------------
__10-1 해시법
____정렬된 배열에 새로운 값 추가하기
____해시법 정의하기
____충돌 살펴보기
____체인법 살펴보기
____오픈 주소법 이해하기

QuickMenu