상세정보
Do it! 자료구조와 함께 배우는 알고리즘 입문 - 자바 편
- 저자
- 시바타 보요 저/강민 역
- 출판사
- 이지스퍼블리싱 (주)
- 출판일
- 2022-05-16
- 등록일
- 2024-07-12
- 파일포맷
- PDF
- 파일크기
- 12MB
- 공급사
- 예스이십사
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
기업 코딩 테스트와 모든 시험의 기초가 되는 ‘자료구조와 알고리즘’!
도해 217개, 실습 예제 102개, 연습 문제 84개로 빠르고! 쉽게! 배운다!
자료구조와 알고리즘은 국내외 IT 기업의 면접과 코딩 테스트에서 중요한 역량이다. 이는 단순히 개념만 이해한다고 해서 바로 실전에 사용하기가 힘들다. 하나하나 자신의 손으로 코딩하고 결과를 확인해 보면서 컴퓨터가 어떻게 데이터를 저장하고 문제를 해결하는지 직접 경험해야 실전에서도 막힘없이 사용할 수 있다.
새롭게 단장한 『Do it! 자료구조와 함께 배우는 알고리즘 입문 - 자바 편(전면 개정판)』은 전편보다 풍부한 도해와 예제로 개념을 더욱 쉽게 이해할 수 있도록 구성했다. 또한 최신 버전인 자바 14를 반영하여 실무에 도움이 되는 예제들을 추가했습니다. 엄선한 102개의 실습 예제, 84개의 연습 문제를 직접 코딩하다 보면 자바 프로그래밍 실력까지 더 높일 수 있다.
저자소개
2004년부터 C, C++, JAVA의 기초 프로그래밍 관련 책을 40권 이상 집필한 이 분야의 대표 저자이다. 이러한 공로를 인정받아 공학교육협회 저작상을 수상하기도 했다. 현재 후쿠오카 사립 기술대학교에서 정보공학부 정보공학과 부교수로 재직 중이며 컴퓨터 프로그래밍 교육 분야에 공헌하고 있다. 국내에서는 『Do it! 자료구조와 함께 배우는 알고리즘 입문 - C 언어 편(2017, 이지스퍼블리싱)』, 『Do it! 자료구조와 함께 배우는 알고리즘 입문 - 자바 편(2018, 이지스퍼블리싱)』을 포함해 총 7권의 번역서가 출간되었다.
목차
01 기본 알고리즘
__01-1 알고리즘이란?
____세 값의 최댓값 구하기
____[보충수업 1-1] 숫자와 문자열 입력하기 1
____[보충수업 1-2] 숫자와 문자열 입력하기 2
____[보충수업 1-3] 메서드의 반환값과 메서드
____호출식의 평가
____[보충수업 1-4] 세 값의 대소 관계와 중앙값
____조건 판단과 분기
____[보충수업 1-5] 연산자와 피연산자
____순서도의 기호
__01-2 반복
____1부터 n까지 정수의 합 구하기
____[보충수업 1-6] for 문 자세히 알아보기
____양수만 입력받아 1부터 n까지의 합 구하기
____반복 과정에서 조건 판단하기 1
____반복 과정에서 조건 판단하기 2
____반복 과정에서 조건 판단하기 3
____[보충수업 1-7] 논리 연산과 드모르간 법칙
____다중 루프 다루기
____[보충수업 1-8] 카운터용 변수의 이름은 왜 i나 j일까요?
02 기본 자료구조
__02-1 배열이란?
____자료구조 정의하기
____배열 다루기
____배열 요소의 최댓값 구하기
____[보충수업 2-1] 값을 대입하지 않은 지역 변수
____[보충수업 2-2] 메서드의 매개변수로 배열 사용하기
____[보충수업 2-3] 난수의 생성
____배열 요소를 역순으로 정렬하기
____[보충수업 2-4] 전위형 증가 연산자와 후위형 증가 연산자
____기수 변환하기
____[보충수업 2-5] 기수 살펴보기
____소수 나열하기
____[보충수업 2-6] 배열에 관련된 세부 규칙
__02-2 클래스란?
____클래스 다루기
____클래스에서 배열 구현하기
____[보충수업 2-7] 클래스 더 알아보기
03 검색 알고리즘
__03-1 검색 알고리즘이란?
____검색과 키 살펴보기
____배열에서 검색하기
__03-2 선형 검색
____선형 검색 알아보기
____[보충수업 3-1] 형 import 선언
____보초법으로 선형 검색 구현하기
__03-3 이진 검색
____이진 검색 알아보기
____복잡도 구하기
____[보충수업 3-2] java.lang 패키지의 자동 import
____Arrays.binarySearch에 의한 이진 검색
____[보충수업 3-3] 클래스 메서드와 인스턴스 메서드
____[보충수업 3-4] 자연 정렬
____[보충수업 3-5] 제네릭스
04 스택과 큐
__04-1 스택이란?
____스택 알아보기
____스택 만들기
__04-2 큐란?
____큐 알아보기
____배열로 큐 만들기
____링 버퍼로 큐 만들기
____[보충수업 4-1] 링 버퍼의 활용
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 퀵 정렬
____퀵 정렬 살펴보기
____배열을 두 그룹으로 나누기
____퀵 정렬 구현하기
____[보충수업 6-1] 퀵 정렬에서 배열을 나누는 과정 출력하기
____비재귀적인 퀵 정렬 구현하기
__06-7 병합 정렬
____정렬을 마친 두 배열의 병합 살펴보기
____병합 정렬 구현하기
____Arrays.sort로 퀵 정렬과 병합 정렬하기
__06-8 힙 정렬
____힙이란?
____힙 정렬 알아보기
____배열을 힙으로 만들기
__06-9 도수 정렬
____도수 정렬 알아보기
07 문자열 검색
__07-1 브루트-포스법
____문자열 검색이란?
____브루트-포스법 알아보기
____[보충수업 7-1] 문자열과 String 클래스
____String.indexOf 메서드로 문자열 검색하기
__07-2 KMP법
____KMP법 알아보기
__07-3 보이어·무어법
____보이어·무어법 알아보기
____[보충수업 7-2] 문자열 검색 알고리즘의 시간 복잡도와 실용성
08 리스트
__08-1 리스트란?
____리스트 살펴보기
____배열로 선형 리스트 만들기
__08-2 포인터로 연결 리스트 만들기
____포인터로 연결 리스트 만들기
____포인터로 연결 리스트를 사용하는 프로그램 만들기
____[보충수업 8-1] toString 메서드
__08-3 배열 커서로 연결 리스트 만들기
____배열 커서로 연결 리스트 만들기
____배열의 비어 있는 요소 처리하기
____프리 리스트 살펴보기
____배열 커서로 연결 리스트를 사용하는 프로그램 만들기
__08-4 원형 이중 연결 리스트 만들기
____원형 리스트 살펴보기
____이중 연결 리스트 살펴보기
____원형 이중 연결 리스트 만들기
____원형 이중 연결 리스트를 사용하는 프로그램 만들기
09 트리
__09-1 트리
____트리란?
____순서 트리와 무순서 트리 살펴보기
____순서 트리 탐색 살펴보기
__09-2 이진트리와 이진검색트리
____이진트리란?
____완전이진트리란?
____이진검색트리 살펴보기
____이진검색트리 만들기
____[보충수업 9-1] 균형검색트리
____이진검색트리를 사용하는 프로그램 만들기
____[보충수업 9-2] API 문서 참조하기
____[보충수업 9-3] Object 클래스 이해하기
10 해시
__10-1 해시법
____정렬된 배열에 새로운 값 추가
____해시법
____충돌
____체인법
____[보충수업 10-1] 해시와 해시 함수 알아보기
____[보충수업 10-2] 열거 살펴보기
____오픈 주소법