길벗·이지톡

도서 IT 전문서 프로그래밍/오픈소스

500개가 넘는 예제와 문제로 코딩 인터뷰를 대비한 효율적인 문제 풀이 전략을 배운다!

효율적인 알고리즘 설계는 소프트웨어에서 아주 중요합니다. 그래서 모든 소프트웨어 회사의 코딩 인터뷰에서는 자료 구조와 알고리즘을 얼마나 아는지는 물론 지원자가 복잡한 문제를 자료 구조와 알고리즘을 이용해 어떻게 효율적으로 해결하는지를 살펴봅니다. 단지 아는 것을 넘어서 코딩 인터뷰에서 인정받고 소프트웨어 엔지니어로서 탁월한 능력을 발휘하려면 자료 구조와 알고리즘을 자유자재로 구사해야 합니다. 

이 책은 코딩 인터뷰를 준비하는 사람을 대상으로 합니다. 앞부분에서는 여러 가지 자료 구조와 알고리즘에 대한 복잡도를 분석하고 뒷부분에서는 다양한 알고리즘 기법을 다룹니다. 또한, 각 주제에 맞춰 문제와 해결책을 제시하며, 연습 문제를 통해 완전히 이해하고 있는지 확인하게 합니다. 이 책은 C 언어로 해결책을 제시하지만, C 언어가 친숙하지 않더라도 구조체, 함수, 배열, 포인터, 재귀의 개념을 안다면 읽는 데 무리가 없습니다.


 

목차

1부 코딩 인터뷰를 위한 기본 개념 익히기 

 

1장 알고리즘 분석

_1.1 점근적 분석

_1.2 알고리즘 복잡도 분석

_1.3 시간 복잡도 예제

_1.4 마스터 정리

_1.5 배열 기반 문제

_1.6 재귀 함수

 

2장 알고리즘 문제를 풀기 위한 접근법

_2.1 제약 조건 분석

_2.2 아이디어 구상

_2.3 복잡도 계산

_2.4 코딩

_2.5 테스트

_2.6 코딩 인터뷰 예시

_2.7 정리

 

3장 추상 자료형과 자료 구조

_3.1 추상 자료형

_3.2 자료 구조

_3.3 배열

_3.4 연결 리스트

_3.5 스택

_3.6

_3.7 트리

_3.8

_3.9 해시 테이블

_3.10 딕셔너리와 심볼 테이블

_3.11 그래프

_3.12 정렬

_3.13 정리

 

4장 정렬

_4.1 정렬 유형

_4.2 정렬 알고리즘 비교

_4.3 정렬 문제

 

5장 검색

_5.1 왜 검색일까

_5.2 검색 알고리즘의 종류

_5.3 검색 문제

 

2부 자료 구조

 

6장 연결 리스트

_6.1 연결 리스트의 기본

_6.2 연결 리스트의 종류

_6.3 연결 리스트 문제

 

7장 스택

_7.1 스택의 추상 자료형

_7.2 시스템 스택과 함수 호출

_7.3 배열로 스택 구현하기

_7.4 연결 리스트로 스택 구현하기

_7.5 스택 문제

 

8장 큐

_8.1 큐의 추상 자료형

_8.2 배열로 큐 구현하기

_8.3 연결 리스트로 큐 구현하기

_8.4 큐 문제

 

9장 트리

_9.1 트리의 기본

_9.2 이진 트리

_9.3 이진 트리의 유형

_9.4 이진 트리 문제

_9.5 이진 탐색 트리

_9.6 이진 탐색 트리 문제

_9.7 이진 트리의 확장

 

10장 힙

_10.1 힙의 유형

_10.2 힙의 추상 자료형 연산

_10.3 힙 연산

_10.4 힙 정렬하기

_10.5 힙을 사용하는 곳

_10.6 힙 문제

 

11장 해시 테이블

_11.1 해시 테이블

_11.2 충돌 해결 기법

_11.3 해싱 문제

 

12장 그래프

_12.1 그래프 용어

_12.2 그래프 구현 방법

_12.3 그래프 순회

_12.4 그래프 문제

 

3부 고급 알고리즘

 

13장 문자열 알고리즘

_13.1 문자열 일치

_13.2 심볼 테이블과 딕셔너리

_13.3 문자열 문제

 

14장 알고리즘 설계 기법

_14.1 무차별 대입 알고리즘

_14.2 탐욕 알고리즘

_14.3 분할 정복과 부분 정복

_14.4 동적 계획법

_14.5 변환 정복

_14.6 백트래킹

_14.7 분기 한정

_14.8 A* 알고리즘

_14.9 정리

 

15장 무차별 대입 알고리즘

_15.1 버블 정렬

_15.2 선택 정렬

_15.3 순차 검색

_15.4 pow(a, n) 계산하기

_15.5 문자열 일치

_15.6 가장 가까운 두 점의 무차별 대입 알고리즘

_15.7 볼록 껍질 문제

_15.8 완전 탐색

_15.9 정리

 

16장 탐욕 알고리즘

_16.1 동전 교환 문제

_16.2 최소 신장 트리

_16.3 단일 출발 최단 경로의 데이크스트라 알고리즘

_16.4 최적 인코딩을 위한 허프만 트리

_16.5 작업 선택 문제

_16.6 배낭 문제

 

17장 분할 정복과 부분 정복

_17.1 일반 분할 정복의 반복

_17.2 병합 정렬

_17.3 퀵 정렬

_17.4 외부 정렬

_17.5 이진 검색

_17.6 제곱 함수

_17.7 볼록 껍질

_17.8 가장 가까운 두 점

 

18장 동적 계획법

_18.1 피보나치 수

_18.2 조립 라인 계획

_18.3 최장 증가 부분 수열

_18.4 최장 바이토닉 부분 수열

_18.5 연쇄 행렬 곱셈

_18.6 최장 공통 부분 수열

_18.7 동전 교환 문제

 

19장 백트래킹

_19.1 N 여왕 말 문제

_19.2 하노이의 탑

 

20장 복잡도 이론

_20.1 결정 문제

_20.2 복잡도 클래스

_20.3 정리

 

더보기접기

저자

ㆍ지은이 헤먼 자인(Hemant Jain)

저자소개

C/C++ 애플리케이션 개발자로, IIIT-Allahabad에서 정보 기술 분야 학사 학위를 받았으며 인도 Microsoft R&D와 인도 Adobe Systems에서 근무했습니다. 


 

ㆍ옮긴이 이호진

저자소개

홍익대학교 컴퓨터공학과를 졸업하고, 20년 동안 다양한 분야에서 개발자로 일했습니다. 윈도우 응용 프로그램, WIPI 플랫폼, 안드로이드 프레임워크 등을 개발했으며, 몇 해 전부터 딥러닝 관련 개발을 주로 하고 있습니다. 현재 LG전자 로봇사업개발센터에서 C++ Python으로 비전 인식 소프트웨어를 개발하고 있습니다. 


 

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.