코딩 인터뷰 퀘스천

Narasimha Karumanchi
776p
구매 가능한 곳

저자/역자

코멘트

1

더 많은 코멘트를 보려면 로그인해 주세요!

목차

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 그래프

출판사 제공 책 소개

이 책은 코딩 인터뷰(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

본 사이트의 모든 콘텐츠는 왓챠피디아의 자산이며, 사전 동의 없이 복제, 전재, 재배포, 인용, 크롤링, AI학습, 데이터 수집 등에 사용하는 것을 금지합니다.

  • 주식회사 왓챠
  • 대표 박태훈
  • 서울특별시 서초구 강남대로 343 신덕빌딩 3층
  • 사업자 등록 번호 211-88-66013