출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

ISBN : 9791163033486 / 424쪽 188 x 257 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
코리아교육그룹 교육연구소
-
정인걸, 김경수
-
321web(미쓰이 마사유키)
-
김현철, 신은경, 이민정, 박선우, 정기민, 곽소아, 정문수
- 19,800
- 21,600
- 16,200
- 21,420
- [시리즈] Do it! 시리즈 [102]
출판사 리뷰
<추천평>
이 책을 편하게 읽는 것만으로도
자료구조 알고리즘 지식을 차곡차곡 쌓을 수 있어요!
그동안 학교에서 또는 독학으로 다양한 알고리즘, 자료구조를 공부했지만 원리나 특징을 짧게 배워서 그런지 실제 프로그래밍에 활용할 때 막히는 부분이 많았습니다. 이런 저에게 실질적으로 도움을 주었던 책이 바로 『Do it! 자료구조와 함께 배우는 알고리즘 입문 ― 자바 편(전면 개정판)』입니다. 이 책은 자바의 고유한 특징을 잘 활용하면서 코드를 작성하고 자료구조와 알고리즘을 자세히 설명해 활용도가 높았습니다.
그리고 알고리즘의 실행 과정과 결과가 책에 친절하게 담겨 있어서 개념만 잘 이해하면 코드를 직접 실행하지 않고도 눈으로 그 과정을 이해할 수 있습니다. 그 결과, 내용을 이해하는 데 걸리는 시간을 줄이고 소설책처럼 편하게 읽을 수 있어서 좋았습니다. 여러분도 소설책처럼 이 책을 읽는 것만으로도 자료구조와 알고리즘 지식이 충분히 쌓일 것입니다.
- 경기과학고등학교 3학년 송혁중
최소의 시간을 투자하여
최대의 효과를 얻을 수 있도록 도와주는 훌륭한 교과서!
이 책은 알고리즘을 공부하는 사람들에게 최소한의 시간 투자로 최대 효과를 얻을 수 있도록 도와주는 훌륭한 교과서입니다. 특히 알고리즘의 과정을 그림으로 자세히 설명하고, 친절한 주석으로 코드를 보충 설명해 주기 때문에 더 쉽게 공부할 수 있습니다. 오래전에 알고리즘을 한번 배운 적이 있지만 이번에 이 책을 읽으면서 잊었던 내용을 빠르게 상기할 수 있었고, 예전에 몰랐던 새로운 알고리즘 또한 배울 수 있었습니다. 또한 자바 언어의 특징과 자바 라이브러리를 활용한 지식도 다루어서 이와 관련하여 직접 프로그래밍하고 싶은 사람도 큰 도움을 받을 수 있습니다.
- 중앙대학교 소프트웨어학부 4학년 채희선
코딩 입문자부터 취업 준비생, 개발자까지 알아야 할
필수 자료구조, 알고리즘이 전부 담긴 책!
알고리즘의 기초 지식이 필요한 입문자에게 적합한 책입니다. 자료구조 개념을 이해하기 쉬울 뿐 아니라 다양한 알고리즘의 문제 유형과 접근법도 배울 수 있기 때문입니다. [Do it! 실습]에서는 앞에서 배운 개념을 바탕으로 코드를 직접 작성하고, 장이 끝날 때쯤에는 조금 어려운 [연습 문제]까지 풀어 볼 수 있습니다. 또한 [보충수업]에서는 본문에서 다룬 내용 외에 자바의 핵심 개념도 설명해서 입문자뿐만 아니라 자바에 능숙한 개발자도 개념을 다시 다질 수 있습니다. 마지막으로 책에 있는 진도표를 참고해 목표를 세우고 개념 공부와 실습을 꾸준히 하다 보면 한 단계 업그레이드한 자신을 발견할 것입니다. 쏙쏙 이해되는 개념서, 다양한 실습으로 구성된 입문서를 찾는다면 적극 추천합니다.
- 9년 차 백엔드 개발자 최인주
---------------
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] 열거 살펴보기
____오픈 주소법





































