책소개
기업 코딩 테스트와 모든 시험의 기초가 되는 ‘자료구조와 알고리즘’!
213개의 그림과 136개의 파이썬 실전 예제로 빠르고! 쉽게! 배운다.
자료구조와 알고리즘은 국내외 IT 기업의 면접과 코딩 테스트에서 중요하게 생각하는 역량입니다. 자료구조와 알고리즘은 단순히 개념만 이해한다고 해서 바로 실전에 사용하기는 힘듭니다. 하나하나 자신의 손으로 코딩하고 결과를 확인해 보면서 컴퓨터가 어떻게 데이터를 저장하고 문제를 해결하는지 직접 경험해야 실전에서 사용할 수 있습니다. ≪Do it! 자료구조와 함께 배우는 알고리즘 입문 - 파이썬 편≫은 213개의 그림과 함께 저자의 친절한 설명으로 개념을 쉽게 이해할 수 있습니다. 이를 바탕으로 136개의 파이썬 실습 예제로 직접 코딩하며 개발 능력을 키울 수 있습니다.
저자소개
저자 : 시바타 보요
저자 : 시바타 보요
2004년부터 C, C++, JAVA의 기초 프로그래밍 관련 책을 40권 이상 집필한 이 분야의 대표 저자이다. 이러한 공로를 인정받아 공학교육협회 저작상을 수상하기도 했다. 현재 후쿠오카 사립 기술대학교에서 정보공학부 정보공학과 부교수로 재직 중이며 컴퓨터 프로그래밍 교육 분야에 공헌하고 있다. 국내에서는 『Do it! 자료구조와 함께 배우는 알고리즘 입문 - C 언어 편(2017, 이지스퍼블리싱)』, 『Do it! 자료구조와 함께 배우는 알고리즘 입문 - 자바 편(2018, 이지스퍼블리싱)』을 포함해 총 7권의 번역서가 출간되었다.
역자 : 강민
서울대학교 인문학 전공. (주)현영시스템즈에서 프로그래머, 시스템 엔지니어, 이글로벌 코리아에서 D/B 암호화, S/W 지역화 프로젝트 매니저를 하며 IT 관련 분야에서 경력을 쌓아 왔다. (주)그래텍에서 교육 문화 콘텐츠 기획을 했던 경험을 바탕으로 현재 분당 서현과 판교에서 레고 에듀케이션 공식 인증 러닝 센터인 CiC에듀를 운영하며 아이들과 함께 레고, 로봇, 코딩과 C++, Java, Python 알고리즘을 탐구하면서 컴퓨팅 사고력을 기르는 코딩 교육 활동을 하고 있다.
목차
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 이진 트리와 이진 검색 트리
____이진 트리 알아보기
____완전 이진 트리 알아보기
____이진 검색 트리 알아보기
____이진 검색 트리 만들기
____이진 검색 트리 프로그램