본문내용 바로가기
MD의선택 무료배송 이벤트 사은품 소득공제

문제 해결력을 높이는 알고리즘과 자료 구조 코딩 테스트, 프로그래밍 경진대회 전 필독서!

오츠키 켄스케 지음 | 서수환 옮김 | 아키바 타쿠야 감수 | 길벗 | 2022년 02월 22일 출간
클로버 리뷰쓰기
  • 정가 : 24,000원
    판매가 : 21,600 [10%↓ 2,400원 할인]
  • 혜택 :
    [기본적립] 1200원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘(11일,목) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 인프콘 2022 교보문고도 함께 합니다! 발표 세션 주제별 추천..
    2022.08.08 ~ 2022.08.31
  • 『클린코드』박재호 역자와 함께하는 개발자 북콘서트 사전신청!
    2022.07.22 ~ 2022.08.16
  • [교보단독 사은품] 개발자 매거진 <리드잇zine> ..
    2022.05.10 ~ 2022.08.12
  • 비전공자도 혼자 공부할 수 있는 친절한 컴퓨터 공학 책을 추천드..
    2022.03.17 ~ 2023.12.31
상품상세정보
ISBN 9791165218874(1165218879)
쪽수 412쪽
크기 183 * 234 * 24 mm /738g 판형알림
이 책의 원서/번역서 問題解決力を鍛える!アルゴリズムとデ-タ構造 / 大槻兼資

책소개

이 책이 속한 분야

알고리즘 문제의 답을 스스로 생각하는, 코딩 테스트와 프로그래밍 경진대회 전 필독서!
이 책은 알고리즘 입문서이자 + 응용력, 문제 해결력을 높여주는 알고리즘 활용서다. 궁극적으로 알고리즘을 잘 다룰 수 있게 실력을 키우는 것을 목표로 한다. 우선 알고리즘에 대해 전혀 모르는 사람이 알고리즘의 전반적인 모습을 체계적으로 인식하고, 필요한 기초 개념과 기본적인 알고리즘을 배울 수 있다. 알고리즘을 설명할 때는 유명한 알고리즘을 단순히 소개하는 것이 아니라 어떻게 설계되었는지 설계 기법과 설계 과정, 응용 방법과 사례도 함께 설명한다. 또한, 다양한 상황에서 알고리즘을 사용해 문제를 해결할 수 있도록 알고리즘을 설계할 때 필요한 지식과 접근법을 설명한다. 목표는 알고리즘의 동작을 구체적으로 이해하고 실제 문제 해결에 사용하는 것이며, 알고리즘을 단순히 아는 것을 넘어서 잘 다루는 것이다. 우리는 알고리즘을 사용해 주어진 문제를 잘 풀기도 하고, 내가 직접 설계도 하고, 더 효율적으로 개선할 수도 있어야 한다. 이 책은 이를 위해 필요한 방법과 지식을 학습한다.

목차

1장 알고리즘이란?
1.1 알고리즘이란 무엇인가?
1.2 알고리즘 예제(1): 깊이 우선 탐색과 너비 우선 탐색
__1.2.1 빈 칸 채우기 퍼즐로 배우는 깊이 우선 탐색
__1.2.2 미로로 배우는 너비 우선 탐색
1.3 알고리즘 예제(2): 매칭
1.4 알고리즘 서술 방법
1.5 알고리즘을 배우는 의미
1.6 연습 문제

2장 복잡도와 빅오 표기법
2.1 복잡도란?
2.2 복잡도와 빅오 표기법
__2.2.1 복잡도 빅오 표기법 생각해 보기
__2.2.2 코드 2-1의 복잡도
__2.2.3 코드 2-2의 복잡도
__2.2.4 실제로 복잡도 구해 보기
__2.2.5 복잡도를 빅오 표기법으로 표시하는 이유
2.3 복잡도를 구하는 예(1): 짝수 나열
2.4 복잡도를 구하는 예(2): 최근접 점쌍 문제
2.5 복잡도 사용법
2.6 복잡도 관련 주의 사항
__2.6.1 시간 복잡도와 공간 복잡도
__2.6.2 최악 시간 복잡도와 평균 시간 복잡도
2.7 란다우 빅오 표기법 상세 설명(*)
__2.7.1 란다우 빅오 표기법
__2.7.2 오메가 표기법
__2.7.3 세타 표기법
2.8 마무리
2.9 연습 문제

3장 설계 기법(1): 전체 탐색
3.1 전체 탐색을 배우는 의미
3.2 전체 탐색(1): 선형 탐색법
3.3 선형 탐색법의 응용
__3.3.1 조건을 만족하는 위치 파악 가능
__3.3.2 최솟값 구하기
3.4 전체 탐색(2): 쌍 전체 탐색
3.5 전체 탐색(3): 조합 전체 탐색(*)
3.6 정리
3.7 연습 문제

4장 설계 기법(2): 재귀와 분할 정복법
4.1 재귀란 무엇인가?
4.2 재귀 사용 예(1): 유클리드 호제법
4.3 재귀 사용 예(2): 피보나치 수열
4.4 메모이제이션 동적 계획법
4.5 재귀 사용 예(3): 재귀 함수를 사용한 전체 탐색
__4.5.1 부분합 문제
__4.5.2 부분합 문제에 대한 재귀적 전체 탐색 복잡도(*)
__4.5.3 부분합 문제에 대한 메모이제이션(*)
4.6 분할 정복법
4.7 정리
4.8 연습 문제

5장 설계 기법(3): 동적 계획법
5.1 동적 계획법이란?
5.2 동적 계획법 예제
5.3 동적 계획법 관련 개념도
__5.3.1 완화
__5.3.2 끌기 전이 형식과 밀기 전이 형식
__5.3.3 끌기 전이 형식과 밀기 전이 형식 비교
__5.3.4 전체 탐색 메모이제이션을 이용한 동적 계획법
5.4 동적 계획법 예제(1): 냅색 문제
5.5 동적 계획법 예제(2): 편집 거리
5.6 동적 계획법 예제(3): 구간 분할 최적화
5.7 정리
5.8 연습 문제

6장 설계 기법(4): 이진 탐색법
6.1 배열 이진 탐색
__6.1.1 배열 이진 탐색
__6.1.2 배열 이진 탐색 복잡도(*)
6.2 C++의 std::lower_bound()
6.3 일반화한 이진 탐색법
6.4 좀 더 일반화한 이진 탐색법(*)
6.5 응용 예(1): 나이 맞히기 게임
6.6 응용 예(2): std::lower_bound() 활용
6.7 응용 예(3): 최적화 문제를 판정 문제로 바꾸기
6.8 응용 예(4): 중앙값 구하기
6.9 정리
6.10 연습 문제

7장 설계 기법(5): 탐욕법
7.1 탐욕법이란?
7.2 탐욕법으로 최적해를 구할 수 없는 경우
7.3 탐욕법 패턴(1): 교환해도 악화되지 않음
7.4 탐욕법 패턴(2): 현재가 좋으면 미래도 좋음
7.5 정리
7.6 연습 문제

8장 자료 구조(1): 배열, 연결 리스트, 해시 테이블
8.1 자료 구조를 배우는 의미
8.2 배열
8.3 연결 리스트
8.4 연결 리스트 삽입과 삭제
__8.4.1 연결 리스트 삽입
__8.4.2 연결 리스트 삭제
8.5 배열과 연결 리스트 비교
8.6 해시 테이블
__8.6.1 해시 테이블 만드는 법
__8.6.2 해시 충돌 대책
__8.6.3 해시 테이블 복잡도
__8.6.4 C++와 파이썬의 해시 테이블
__8.6.5 연상 배열
8.7 정리
8.8 연습 문제

9장 자료 구조(2): 스택과 큐
9.1 스택과 큐의 개념
9.2 스택과 큐의 동작과 구현
__9.2.1 스택 동작과 구현
__9.2.2 큐 동작과 구현
9.3 정리
9.4 연습 문제

10장 자료 구조(3): 그래프와 트리
10.1 그래프
__10.1.1 그래프 사고방식
__10.1.2 유향 그래프와 무향 그래프
__10.1.3 워크, 사이클, 패스
__10.1.4 연결성
10.2 그래프를 사용하는 공식화 예시
__10.2.1 소셜 네트워크
__10.2.2 교통 네트워크
__10.2.3 게임 국면 전이
__10.2.4 작업 의존 관계
10.3 그래프 구현
10.4 가중 그래프 구현
10.5 트리
__10.5.1 루트 트리
__10.5.2 부분 트리와 트리 높이
10.6 순서 트리와 이진 트리
__10.6.1 순서 트리와 이진 트리
__10.6.2 강균형 이진 트리
10.7 이진 트리를 사용한 자료 구조 예(1): 힙
__10.7.1 힙이란?
__10.7.2 힙 실현 방법
__10.7.3 힙 쿼리 처리
__10.7.4 힙 구현 예
__10.7.5 O(N) 복잡도로 힙 구축(*)
10.8 이진 트리를 사용하는 자료 구조 예(2): 이진 탐색 트리
10.9 정리
10.10 연습 문제

11장 자료 구조(4): Union-Find
11.1 Union-Find란?
11.2 Union-Find 구조
11.3 Union-Find 복잡도를 줄이는 방법
11.4 Union-Find 개선법 1: union by size
__11.4.1 union by size란?
__11.4.2 union by size 복잡도 분석
11.5 Union-Find 개선법 2: 경로 압축
11.6 Union-Find 구현
11.7 Union-Find 응용: 그래프 연결 요소 개수
11.8 정리
11.9 연습 문제

12장 정렬
12.1 정렬이란?
12.2 정렬 알고리즘의 좋고 나쁨
__12.2.1 in-place와 안정성
__12.2.2 어떤 정렬 알고리즘이 좋은가?
12.3 정렬(1): 삽입 정렬
__12.3.1 동작과 구현
__12.3.2 삽입 정렬 복잡도와 성질
12.4 정렬(2): 병합 정렬
__12.4.1 동작과 구현
__12.4.2 병합 정렬 복잡도와 성질
__12.4.3 병합 정렬 복잡도를 자세히 분석하기(*)
12.5 정렬(3): 퀵 정렬
__12.5.1 동작과 구현
__12.5.2 퀵 정렬 복잡도와 성질
__12.5.3 무작위 선택 퀵 정렬(*)
12.6 정렬(4): 힙 정렬
12.7 정렬 복잡도의 하한값
12.8 정렬(5): 버킷 정렬
12.9 정리
12.10 연습 문제

13장 그래프(1): 그래프 탐색
13.1 그래프 탐색을 배우는 의의
13.2 깊이 우선 탐색과 너비 우선 탐색
13.3 재귀 함수를 사용하는 깊이 우선 탐색
13.4 전위 순회와 후위 순회
13.5 최단 경로 알고리즘으로 너비 우선 탐색
13.6 깊이 우선 탐색과 너비 우선 탐색의 복잡도
13.7 그래프 탐색 예(1): s-t 패스 구하기
13.8 그래프 탐색 예(2): 이분 그래프 판정
13.9 그래프 탐색 예(3): 위상 정렬
13.10 그래프 탐색 예(4): 트리 동적 계획법(*)
13.11 정리
13.12 연습 문제

14장 그래프(2): 최단 경로 문제
14.1 최단 경로 문제란?
__14.1.1 가중치 유향 그래프
__14.1.2 단일 시작점 최단 경로 문제
__14.1.3 음의 변과 음의 닫힌 경로
14.2 최단 경로 문제 정리
14.3 완화
14.4 DAG의 최단 경로 문제: 동적 계획법
14.5 단일 시작점 최단 경로 문제: 벨만-포드 알고리즘
__14.5.1 벨만-포드 알고리즘 아이디어
__14.5.2 벨만-포드 알고리즘 구현
__14.5.3 벨만-포드 알고리즘의 정확성(*)
14.6 단일 시작점 최단 경로 문제: 다익스트라 알고리즘
__14.6.1 두 종류의 다익스트라 알고리즘
__14.6.2 단순한 다익스트라 알고리즘
__14.6.3 다익스트라 알고리즘의 직감적인 이미지
__14.6.4 다익스트라 알고리즘 정확성(*)
__14.6.5 희소 그래프인 경우: 힙을 사용한 고속화(*)
14.7 모든 쌍의 최단 경로 문제: 플로이드-워셜 알고리즘
14.8 참고: 포텐셜과 차분 제약계(*)
14.9 정리
14.10 연습 문제

15장 그래프(3): 최소 신장 트리 문제
15.1 최소 신장 트리 문제란?
15.2 크러스컬 알고리즘
15.3 크러스컬 알고리즘 구현
15.4 신장 트리 구조
__15.4.1 컷
__15.4.2 기본 사이클
__15.4.3 기본 컷 집합
15.5 크러스컬 알고리즘의 정확성(*)
15.6 정리
15.7 연습 문제

16장 그래프(4): 네트워크 흐름
16.1 네트워크 흐름을 배우는 의의
16.2 그래프 연결도
__16.2.1 변 연결도
__16.2.2 최소 컷 문제
__16.2.3 변 연결도를 구하는 알고리즘과 강 쌍대성 증명
16.3 최대 흐름 문제와 최소 컷 문제
__16.3.1 최대 흐름 문제란?
__16.3.2 흐름의 성질
__16.3.3 최소 컷 문제와 쌍대성
__16.3.4 포드-풀커슨 알고리즘
16.4 포드-풀커슨 알고리즘 구현
16.5 응용 예(1): 이분 매칭
16.6 응용 예(2): 점 연결도
16.7 응용 예(3): 프로젝트 선택 문제
16.8 정리
16.9 연습 문제

17장 P와 NP
17.1 문제의 어려움을 측정하는 방법
17.2 P와 NP
17.3 P ≠ NP 문제
17.4 NP 완전
17.5 다항식 시간 환원 예
__17.5.1 꼭짓점 커버 문제
__17.5.2 부분합 문제(*)
17.6 NP 난해
17.7 정지 문제
17.8 정리
17.9 연습 문제

18장 어려운 문제 대책
18.1 NP 난해 문제와 마주하기
18.2 특수한 경우로 풀리는 방법
18.3 탐욕법
18.4 국소 탐색과 담금질 기법
18.5 분기 한정법
18.6 정수계획 문제로 공식화
18.7 근사 알고리즘
18.8 정리
18.9 연습 문제

19장 참고 문헌
19.1 알고리즘 전반
19.2 알고리즘 전반(본격적인 전문서)
19.3 복잡도, P와 NP
19.4 그래프 알고리즘, 조합 최적화
19.5 어려운 문제 대책
19.6 기타 분야

후기
찾아보기

책 속으로

[감수자 서문]
이 책은 입문서에서 중요한 기초를 확실히 다지도록 해주면서 구성이 개성적입니다. 유명 알고리즘을 소개하는 데 그치지 않고 알고리즘 응용법과 설계 방법에도 비중을 둡니다. 널리 쓰이는 알고리즘 교과서의 구성은 유명 알고리즘을 단순히 소개하는 형식이 대다수입니다. ‘이런 처리를 하면 되니까 XX 알고리즘을 사용하자’라고 바로 답이 나오는 상황이라면 참고용으로 좋겠지요. 하지만 현실 세계에서 우리가 직면하는 문제는 그렇게 간단히 끝나지 않습니다. 어떤 알고리즘을 어떻게 사용하면 좋을지 알 수 없고 직접 알고리즘을 설계해야... 더보기

출판사 서평

알고리즘 문제를 풀 수 있다!
더 나아가, 설계하고 개선하고 확장하여 새로운 무언가를 생각해 낼 수 있다!

컴퓨터 과학을 배운다면 피할 수 없는 알고리즘
알고리즘이란 문제를 풀기 위한 절차다. 알고리즘을 배운다는 건 단순히 이론을 외우는 것이 아닌 세상의 다양한 문제를 해결하는 수단을 늘려가는 것을 말한다. 알고리즘을 잘 다뤄서 제시된 문제를 잘 풀고 싶다면? 내가 직접 알고리즘을 설계하고 더 효율이 높게 개선하고 싶다면? 이를 위해서는 어떤 알고리즘이 있는지 알기만 하는 데서 그치지 않고 설계하고 응용하는 과정을 학습해야 한... 더보기

Klover 리뷰 (0)

북로그 리뷰 (1) 전체보기 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료
  • +간단 요약 : 알고리즘, 자료구조를 처음 접함과 동시에 다소 깊이 있게 이해하고 싶은 사람에게 좋을 것 같다. 개인적으로 가장 추천하는 그룹은 [이제 막 알고리즘, 자료구조 수업을 듣고있지만 부족함을 느껴 겸해서 볼 수 있는 개념서가 필요한 독자], 혹은 [수업은 다 들었지만 완벽하게 이해가 되지 않았다고 생각하는 독자], 그리고 [이전에 알고리즘/자료구조 수업을 들었지만 한 번 톺아보면서 겸사겸사 깊게도 살짝 터치하고 싶다고 생각하는 독자]에게 적합할 것 같다. 내부 설명 코드는 C++로 되어있으나 크게 난이도가 있는 코드는 나... 더보기

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품