책소개
IT 기업, 모든 시험에서 기초가 되는
자료구조와 알고리즘의 개념을 한 권에 모두 담았다!
국내 IT 기업의 면접, 코딩 시험에서 중요하게 생각하는 역량 가운데 하나는 자료구조와 알고리즘이다. 자료구조와 알고리즘은 머리로 개념만 이해한다고 바로 실전에 사용할 수는 없다. 하나씩 자신의 손으로 코딩하고 결과를 확인하며 컴퓨터가 어떻게 데이터를 저장하고 문제를 해결하는지 직접 느껴야 실전에서 사용할 수 있다. ≪Do it! 자료구조와 함께 배우는 알고리즘 입문 - 자바 편≫은 220개의 도해와 함께 저자의 친절한 설명으로 개념을 쉽게 이해할 수 있으며 이해한 개념은 바로바로 88개의 실습 예제와 93개의 연습 문제로 직접 코딩할 수 있는 책이다.
저자소개
저자 : 보요 시바타
저자 보요 시바타 柴田 望洋 (Bohyoh Shibata)
2004년부터 C, C++, JAVA의 기초 프로그래밍 서적을 40권 이상 집필한 이 분야의 대표 저자이다. 이러한 공로를 인정받아 일본 공학 교육 협회에서 저작권상을 수상하기도 했다. 후쿠오카 사립 기술대학교에서 정보 공학부 정보 공학과 부교수로 재직 중이며 지속해서 컴퓨터 프로그래밍 교육 분야에 공헌하고 있다. 어렵게 느껴질 수 있는 알고리즘과 자료구조를 혼자서도 정확하고 빠르게 배울 수 있도록 그동안의 프로그래밍 교육 노하우를 이 책에 모두 담았다. 개념 이해를 돕는 220개의 도해와 88개의 코딩 실습, 93개의 연습 문제까지 하고 나면 자바를 다루는 능력이 향상되는 건 물론 각종 시험도 대비할 수 있다.
역자 : 강민
역자 강민
서울대학교 미학과 졸업. 현영시스템즈에서 프로그래머, 시스템 엔지니어, eGlobal Korea에서 DB 암호화, SW 지역화 프로젝트 매니저를 하며 IT 관련 분야 업무를 하였다. 그래텍에서 곰TV의 교육문화컨텐츠 기획, GTG사고력수학에서 아동사고력 발달 연구, 상담을 바탕으로 LEGO 에듀케이션 공식인증러닝센터 CiC에듀를 운영하며 컴퓨팅 사고력을 길러주는 레고·로봇·코딩 컨텐츠와 프로그래밍 알고리즘 커리큘럼을 개발하여 교육하고 있다.
목차
01 기본 알고리즘
01-1 알고리즘이란?
세 값의 최댓값
조건 판단과 분기
순서도의 기호
01-2 반복
1부터 n까지의 정수 합 구하기
양수만 입력하기
구조적 프로그래밍
다중 루프
직각 이등변 삼각형 출력
02 기본 자료구조
02-1 배열
자료구조
배열
배열 요소의 최댓값 구하기
배열 요소를 역순으로 정렬하기
두 배열의 비교
기수 변환
소수의 나열
다차원 배열
한 해의 경과 일 수를 계산하는 프로그램
다차원 배열의 내부
02-2 클래스
클래스란?
클래스의 배열
03 검색
03-1 검색 알고리즘
검색과 키
배열에서 검색하기
03-2 선형 검색
선형 검색
보초법
03-3 이진 검색
이진 검색
복잡도
Arrays.binarySearch에 의한 이진 검색
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 퀵 정렬
퀵 정렬 살펴보기
배열을 두 그룹으로 나누기
퀵 정렬
비재귀적인 퀵 정렬
06-7 병합 정렬
정렬을 마친 배열의 병합
병합 정렬
Arrays.sort로 퀵 정렬과 병합 정렬하기
06-8 힙 정렬
힙이란?
힙 정렬
배열을 힙으로 만들기
06-9 도수 정렬
도수 정렬
07 집합
07-1 집합
집합과 요소
부분집합과 진부분집합
집합의 연산
07-2 배열로 집합 만들기
배열로 집합 만들기
08 문자열 검색
08-1 브루트-포스법
문자열 검색이란?
브루트-포스법
String.IndexOf 메서드로 문자열 검색하기
08-2 KMP법
KMP법
08-3 Boyer-Moore법
Boyer-Moore법
09 리스트
09-1 선형 리스트
선형 리스트란?
배열로 선형 리스트 만들기
09-2 포인터로 연결 리스트 만들기
포인터로 연결 리스트 만들기
연결 리스트를 사용한 프로그램
09-3 커서로 연결 리스트 만들기
커서로 연결 리스트 만들기
배열의 비어 있는 요소 처리하기
프리 리스트
09-4 원형 이중 연결 리스트
원형 리스트
이중 연결 리스트
원형 이중 연결 리스트
10 트리
10-1 트리
트리란?
순서 트리 탐색
10-2 이진트리와 이진검색트리
이진트리
완전이진트리
이진검색트리
이진검색트리 만들기
이진검색트리를 이용하는 프로그램
11 해시
11-1 해시법
정렬된 배열에 새로운 값 추가하기
해시법
충돌
체인법
오픈 주소법