스크랩

구간

코딩 인터뷰 퀘스천

Narasimha Karumanchi 저 | 김성원 역 | 영진닷컴 | 2015년 01월

미리보기 북트리

정가
$70.00
판매가
$51.03 (27%↓) 최저가 보상
적립금
$1.02 (2%P)
출고예상일
2026년 10월 07일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788931447842 / 776쪽 188 x 257 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 19,800
  • 19,800
  • 23,400
  • 15,120

책 소개

반디앤루니스 리뷰

이 책은 코딩 인터뷰(Coding Interview)를 준비하는 사람들을 위해 문제 모음과 이에 대한 전략적인 해결 방법을 소개하는 트레이닝 가이드북입니다. 코딩 인터뷰는 주어진 문제를 해결하는 능력을 테스트하는 수단으로서 알고리즘 경시대회는 물론 SW 기업에서도 지원자의 문제 해결 역량을 테스트하는 척도로 도입하는 추세입니다.

이 책은 프로그래밍 기초 개념부터 시작해 복잡도 표기법과 성장률 등등의 알고리즘의 기초 개념, 그리고 스택과 큐, 연결 리스트, 트리와 힙, 그래프에서부터 정렬과 선택, 분할 정복, 동적 계획법 까지 자료구조와 알고리즘 분야에서 자주 출제되거나 질문으로 물어보는 문제들을 소개하면서 이에 대한 해결 방법들도 자세하게 다루고 있습니다.

책 마지막 부분에는 면접 시 예상 질문과 최적의 해답, 그리고 네트워크, 데이터베이스 같은 주요 IT 기술 개념들을 소개하면서 코딩 인터뷰나 실무 테스트를 준비하는 독자들에게 문제 해결력과 논리력, 자신감을 단련시킬 수 있도록 폭넑고 다양한 주제를 다루었습니다. 

 

출판사 리뷰

출판사 서평 이 책은 코딩 인터뷰(Coding Interview)를 준비하는 사람들을 위해 문제 모음과 이에 대한 전략적인 해결 방법을 소개하는 트레이닝 가이드북입니다. 코딩 인터뷰는 주어진 문제를 해결하는 능력을 테스?트하는 수단으로서 알고리즘 경시대회는 물론 SW 기업에서도 지원자의 문제 해결 역량을 테스트하는 척도로 도입하는 추세입니다. 이 책은 프로그래밍 기초 개념부터 시작해 복잡도 표기법과 성장률 등등의 알고리즘의 기초 개념, 그리고 스택과 큐, 연결 리스트, 트리와 힙, 그래프에서부터 정렬과 선택, 분할 정복, 동적 계획법 까지 ... 이 책은 코딩 인터뷰(Coding Interview)를 준비하는 사람들을 위해 문제 모음과 이에 대한 전략적인 해결 방법을 소개하는 트레이닝 가이드북입니다. 코딩 인터뷰는 주어진 문제를 해결하는 능력을 테스트하는 수단으로서 알고리즘 경시대회는 물론 SW 기업에서도 지원자의 문제 해결 역량을 테스트하는 척도로 도입하는 추세입니다. 이 책은 프로그래밍 기초 개념부터 시작해 복잡도 표기법과 성장률 등등의 알고리즘의 기초 개념, 그리고 스택과 큐, 연결 리스트, 트리와 힙, 그래프에서부터 정렬과 선택, 분할 정복, 동적 계획법 까지 자료구조와 알고리즘 분야에서 자주 출제되거나 질문으로 물어보는 문제들을 소개하면서 이에 대한 해결 방법들도 자세하게 다루고 있습니다. 책 마지막 부분에는 면접 시 예상 질문과 최적의 해답, 그리고 네트워크, 데이터베이스 같은 주요 IT 기술 개념들을 소개하면서 코딩 인터뷰나 실무 테스트를 준비하는 독자들에게 문제 해결력과 논리력, 자신감을 단련시킬 수 있도록 폭?고 다양한 주제를 다루었습니다. ■ 출판사 리뷰 프로그래머가 되고 싶은 자! 코딩 인터뷰는 이제 피할 수 없는 대세다! 최근 국내 IT 대기업을 시작으로 SW 개발 분야 및 프로그래머를 채용할 때 즉석에서 주어진 문제 해결 능력을 테스트하는 프로그래밍 면접, 이른 바 코딩 인터뷰(Coding Interview)를 도입하는 사례가 늘어나기 시작했습니다. 지원자들이 숨겨진 실력을 직접 눈으로 확인하고자 하기 위함이기도 합니다. 이렇게 코딩 인터뷰는 IT 분야로 진출하기 위해 나를 시험하는 장벽이지만 나의 실력을 보여주고 되돌아보면서 실력을 키울 수 있는 기회이기도 합니다. 이 책은 코딩 인터뷰를 대비하기 위해 자료구조와 알고리즘 분야에서 중요하게 다뤄지거나 자주 출제되는 문제들을 폭넓고 다양하게 다루고 있습니다. 하지만 코딩 인터뷰에만 국한하지 않고 IT 기술 면접은 물론 프로그래밍 경시대회까지 IT 분야로 진출하고자 하는 독자들이 테스트라는 장벽과 맞딱뜨렸을 때 효과적인 해결법을 제시할 수 있도록 도움을 주기 위함이 이 책이 태어난 이유입니다. 이 책에서 다루는 모든 주제를 이해하려면 정독해보는 걸 추천하는데 언제든지 참조하고 싶은 부분이나 보고싶은 챕터로 찾아 볼 수 있습니다. IT 취업 준비생들 뿐만 아니라 코딩 인터뷰를 도입하려는 IT 인사팀, 알고리즘 문제 해결 능력을 키우고 싶거나 좀 더 효과적인 해결 방안을 찾고자 하는 현업 프로그래머나 학생들도 이 책이 길잡이가 될 것입니다. ≪이 책의 구성≫ Chapter 01. 프로그래밍 기초 이 챕터에서는 변수와 자료형, 자료 구조를 비롯해 파라미터 전달 기법, 기억 영역 등 프로그래밍을 하면서 접하게 되는 필수적이고 기초적인 내용들을 다루고 있습니다. 예시 문제들과 함께 기초를 탄탄히 다질 수 있도록 해줍니다. Chapter 02. INTRODUCTION 여기서부터 본격적으로 알고리즘과 자료구조에 대한 기초 내용을 정리한 개요 부분을 배우게 됩니다. 알고리즘의 개요, 시간 복잡도와 공간 복잡도, 성장률, 분석 유형, 점근 분석 등등을 다루게 되는데 알고리즘 성능을 좌우하는 복잡도에 대한 내용은 이 책 전반에서 중요하게 다루고 있습니다. Chapter 03. 재귀와 역추적 이 챕터에서는 자신을 반복해서 호출하는 재귀와 분할 정복법을 사용하는 완전 검색 방법인 역추적(백트래킹) 관련 내용을 문제와 함께 다룹니다. 재귀와 역추적은 다른 챕터에서도 등장하는 주제이므로 주의 깊게 학습해야할 챕터입니다. Chapter 04. 연결 리스트 여기서는 자료 구조에서 빠지지 않는 연결 리스트(링크드 리스트, Linked List)에 대한 내용을 문제와 함께 다룹니다. 연결 리스트의 동작 원리와 종류 등등 기본 개념부터 소개한 후 이와 관련된 문제들을 소개하고 있습니다. Chapter 05. 스택 스택은 데이터를 저장하는데 사용되는 자료구조이며 앞에서 소개한 연결 리스트와 함께 단골로 나오는 개념이기도 합니다. 스택의 동작 원리와 구현 방법을 다루고 나서 관련 문제들을 소개하고 있습니다. Chapter 06. 큐 큐는 앞에서 살펴본 스택과 연결 리스트와 함께 자료 구조 분야에서 빠지지 않는 존재입니다. 여기에서는 큐의 개요와 동작 원리 등을 살펴보고 관련 문항들을 살펴봅니다. Chapter 07. 트리 이 챕터에서는 비선형 자료 구조의 대표적인 사례인 트리(Tree)에 대해 다룹니다. 트리의 종류부터 시작해 트리를 방문하는 운행법 등등 중요한 개념들을 소개하고 나서 이와 관련된 문항들을 살펴보게 됩니다. Chapter 08. 우선 순위 큐와 힙 여기서는 우선 순위 큐와 힙(Heap)에 대한 내용을 다룹니다. 우선 순위 큐의 개요와 구현 방법, 이를 이어서 힙의 정의와 주요 개념들을 다루고 나서 문항들을 살펴봅니다. Chapter 09. 그래프 알고리즘 그래프(Graph)는 우리 일상 생활에서도 자주 등장하는 분야이기도 합니다. 대표적인 예가 바로 내비게이션에서 최단 경로 혹은 통행료가 적게 드는 경로를 검색하는 기능일 것입니다. 이 챕터에서는 이러한 그래프 알고리즘을 사용하는 내용들을 문항과 함께 다룹니다. Chapter 10. 정렬 전산에서 정렬을 매우 중요한 알고리즘 중 하나입니다. 문제의 복잡도를 줄여 효율성을 높이기도 하기 때문에 알고리즘 분야에서 많은 연구가 이루어져 왔습니다. 여기서는 이러한 정렬에 대한 내용들을 문항과 함께 다룹니다. Chapter 11. 검색 이 챕터에서는 검색(Search)에 대한 내용을 다룹니다. 검색은 수많은 데이터가 저장되어 있는 컴퓨터에서 찾고자 하는 데이터를 효과적으로 찾기 위해 필요한 것이 바로 검색 알고리즘입니다. 검색의 종류와 방법들을 문항과 함께 소개하면서 학습할 수 있도록 하고 있습니다. Chapter 12. 선택 알고리즘 검색에 이어 선택 알고리즘도 알고리즘에서 자주 등장하기도 합니다. 특히 선택 알고리즘은 정렬 문제와 함께 다뤄지기도 합니다. 이 챕터에서는 이러한 선택 알고리즘에 대한 개념들과 문항들을 살펴봅니다. Chapter 13. 심볼 테이블 우리 일상 생활에서 사전(Dictionary)을 사용하는 경우가 있는데 컴퓨터 과학에서 ADT를 참조할 때 사전보다는 심볼 테이블이라는 용어를 사용합니다. 여기서는 심볼 테이블에 대한 개념과 구현 가능한 방법을 소개하고 있습니다. Chapter 14. 해싱 해싱(Hashing)은 빠르게 정보를 저장하고 검색하기 위해 사용하는 기법 중 하나이며 최적의 검색이 필요한 부야 사용되며 심볼 테이블 같은 자료 구조를 구현하기에 적합한 기법입니다. 이 챕터에서는 해싱에 대한 내용과 문항들을 살펴봅니다. Chapter 15. 문자열 알고리즘 여기서는 문자열 알고리즘에 대한 내용들을 다룹니다. 문자열 매칭 문제, 오토마타, KMP 알고리즘, 보이어-무어 알고리즘, 트라이와 같은 내용들을 문항과 함께 소개하고 있습니다. Chapter 16. 알고리즘 디자인 기술 이 챕터에서는 알고리즘 분류 방법들을 간단하게 소개하고 있습니다. 구현 방법과 디자인 방법에 따라 분류하는 방법을 다루고 있습니다. Chapter 17. 탐욕 알고리즘 탐욕 알고리즘(Greedy Algorithms)은 주어진 시점에서 최선책을 찾는 알고리즘 분야의 단골 소재이기도 합니다. 이 챕터에서는 이러한 탐욕 알고리즘에 대한 내용을 문항과 함께 다루고 있습니다. Chapter 18. 분할 정복 알고리즘

저자 소개

  • 저자 : Narasimha Karumanchi
저자 Narasimha Karumanchi는 아마존의 수석 SW 디벨로퍼였으며 인도 하이데라바드 (Hyderabad)에 위치한 Mentor Graphics와 Microsoft에서 근무하다 최근에는 하이데라바드 IBM 연구소에서 활동하고 있다. 자와할랄 네루 기술 대학교(JNT University)에서 컴퓨터 공학 학사 학위를 받았고 봄베이 인도공대(IIT Bombay)에서 컴퓨터 공학 석사 학위를 받았다. 다양한 교육 센터와 대학에서 자료 구조와 알고리즘을 가르친 경험을 가지고 있다.

역자 소개

  • 역자 : 김성원

숭실대 정보과학대학원 졸업
현 (주)소프트와이드 이사

-저서
새로쓰는 자바 웹 프로그래밍, 영진닷컴
쉽게 풀어쓴 자바 데이터베이스 프로그래밍, 영진닷컴

-역서
아이폰 게임 iPhone Game 개발자 레퍼런스, 영진닷컴

 

목차

목차
Chapter 01. 프로그래밍 기초
1.1 변수(Variables)
1.2 자료형(Data Types)
1.3 자료 구조(Data Structure)
1.4 추상 자료형(Abstract Data Types - ADTs)
1.5 메모리와 변수 (Memory and Variables)
1.6 포인터(Pointers)
1.7 파라미터 전달 기법(Parameter Passing Techniques)
1.8 바인딩(Binding)
1.9 스코프(Scope)
1.10 기억 영역 분류(Storage Classes)
1.11 기억 영역의 구성(Storage Organization)
1.12 프로그래밍 테크닉
1.13 프로그래밍 기초 문제
Chapter 02. INTRODUCTION
2.1 알고리즘이란 무엇인가?
2.2 왜 알고리즘 분석인가?
2.3 알고리즘 분석의 목표
2.4 실행 시간 분석(Running Time Analysis)이란 무엇인가?
2.5 어떻게 알고리즘을 비교하는가?
2.6 성장률(Rate of Growth)이란 무엇인가?
2.7 일반적으로 사용되는 성장률
2.8 분석 유형
2.9 점근적 표기(Asymptotic Notation)
2.10 Big-O 표기법(Big-O Notation)
2.11 Omega-Ω (빅오메가) 표기법
2.12 Theta-θ(빅세타) 표기법
2.13 왜 점근 분석(Asymptotic Analysis)이라고 불리는가?
2.14 점근 분석(Asymptotic Analysis) 지침
2.15 표기법의 속성(Properties of Notation)
2.16 흔히 사용되는 로그와 합산
2.17 분할 정복(Divide and Conquer)에 대한 마스터 정리(Master Theorem)
2.18 감산 정복 반복(Subtract and Conquer Recurrences)에 대한 마스터 정리
2.19 감산 정복(Subtract and Conquer) 마스터 정리의 변형
2.20 알고리즘 분석 문제
Chapter 03. 재귀와 역추적
3.1 소개
3.2 재귀(Recursion)란 무엇인가?
3.3 왜 재귀 방식인가?
3.4 재귀 함수의 형식
3.5 재귀와 메모리(Visualization)
3.6 재귀 vs 반복
3.7 재귀 방식에 대한 참고사항
3.8 재귀 알고리즘의 예
3.9 재귀 방식의 문제
3.10 역추적이란 무엇인가?
3.11 역추적 알고리즘의 예
3.12 역추적 문제
Chapter 04. 연결 리스트
4.1 연결 리스트란 무엇인가?
4.2 연결 리스트 추상 데이터 형(ADT)
4.3 왜 연결 리스트인가?
4.4 배열의 개요
4.5 배열과 동적 배열 그리고 연결 리스트 비교
4.6 단일 연결 리스트(Singly Linked List)
4.7 이중 연결 리스트 (Doubly Linked List)
4.8 환형(또는 환상) 연결 리스트
4.9 메모리 최적화(Memory-Efficient) 이중 연결 리스트
4.10 연결 리스트 문제
Chapter 05. 스택
5.1 스택이란 무엇인가?
5.2 스택은 어떻게 사용하는가?
5.3 스택 추상 자료형(ADT)
5.4 어플리케이션
5.5 구현
5.6 구현 비교
5.7 스택의 문항
Chapter 06. 큐
6.1 큐란 무엇인가?
6.2 큐는 어떻게 사용하는가?
6.3 큐의 추상 자료형(ADT)
6.4 예외
6.5 어플리케이션
6.6 구현
6.7 큐 관련 문항
Chapter 07. 트리
7.1 트리란 무엇인가?
7.2 용어 정의
7.3 이진 트리(Binary 트리)
7.4 이진 트리의 유형
7.5 이진 트리의 속성
7.6 이진 트리 운행(Traversals)
7.7 일반적인 트리 (N항 Trees)
7.8 스레드 이진 트리 운행 [Stack or Queue less Traversals]
7.9 수식 트리
7.10 XOR 트리
7.11 이진 탐색 트리(Binary Search Trees - BSTs)
7.12 균형 이진 검색 트리(Balanced Binary Search Trees)
7.13 AVL(Adelson-Velskii and Landis) 트리
7.14 그밖에 다양한 트리
Chapter 08. 우선 순위 큐와 힙
8.1 우선 순위 큐란 무엇인가?
8.2 우선 순위 큐 추상화 타입(Priority Queue ADT)
8.3 우선 순위 큐 응용프로그램들
8.4 우선 순위 큐 구현
8.5 힙과 이진 힙
8.6 이진 힙(Binary Heap)
8.7 우선 순위 큐와 힙 관련 문항들
Chapter 09. 그래프 알고리즘
9.1 소개
9.2 용어 설명
9.3 그래프 어플리케이션
9.4 그래프의 표현
9.5 그래프 운행(Graph Traversals)
9.6 위상 정렬(Topological Sort)
9.7 최단 경로(Shortest path) 알고리즘
9.8 최소 신장 트리
9.9 그래프 알고리즘의 문항들
Chapter 10. 정렬
10.1 정렬이란?
10.2 왜 정렬이 중요한가?
10.3 분류
10.4 그외 분류들
10.5 버블 정렬
10.6 선택 정렬(Selection sort)
10.7 삽입 정렬(Insertion sort)
10.8 셸 정렬(Shell sort)
10.9 병합 정렬(Merge sort)
10.10 힙 정렬
10.11 퀵 정렬
10.12 트리 정렬(Tree Sort)
10.13 선형 정렬 알고리즘
10.14 계수 정렬(Counting Sort)
10.15 버킷 정렬(Bucket sort 또는 Bin sort)
10.16 기수 정렬(Radix Sort)
10.17 토폴로지 정렬(Topological Sort)
10.18 외부 정렬(External Sorting)
10.19 정렬에 관한 문항들
Chapter 11. 검색
11.1 검색이란?
11.2 왜 검색인가?
11.3 검색의 종류
11.4 불규칙 선형 검색 (Unordered Linear Search)
11.5 정렬/규칙 선형 검색(Sorted/Ordered Linear Search)
11.6 이진 검색(Binary Search)
11.7 기본 검색 알고리즘 비교
11.8 심볼 테이블과 해싱
11.9 문자열 검색 알고리즘
11.10 검색 관련 문항들
Chapter 12. 선택 알고리즘
12.1 선택 알고리즘이란 무엇인가?
12.2 정렬에 의한 선택
12.3 분할 기반 선택(Partition-based Selection) 알고리즘
12.4 선형 선택(Linear Selection) 알고리즘
12.5 정렬 순번으로 K번째로 작은 요소 찾기
12.6 선택 알고리즘에 관한 문항들
Chapter 13. 심볼 테이블
13.1 개요
13.2 심볼 테이블이란 무엇인가?
13.3 심볼 테이블 구현
13.4 심볼 테이블 구현 방법의 비교
Chapter 14. 해싱
14.1 해싱(Hashing)이란 무엇인가?
14.2 해싱을 왜 사용하는가?
14.3 해시 테이블(Hash Table) ADT
14.4 해싱 알아보기
14.5 해싱 구성 요소
14.6 해시 테이블
14.7 해시 함수
14.8 적재 인수
14.9 충돌
14.10 충돌 제거 기법(Collision Resolution Techniques)
14.11 Separate Chaining
14.12 개방 주소법
14.13 충돌 해소 방법 비교
14.14 연산 복잡도 O(1)인 해싱 만드는 방법
14.15 해싱 기법(들)
14.16 해시 테이블이 적합하지 않는 경우들
14.17 해싱 문제
Chapter 15. 문자열 알고리즘
15.1 개요
15.2 문자열 매칭 알고리즘
15.3 전수 방법(Brute Force Method)
15.4 Robin-Karp 문자열 매칭 알

top