실리콘밸리에서 통하는 파이썬 인터뷰 가이드 (취업과 이직을 위한 자료구조, 알고리즘, 시스템 설계 코딩 테스트 문제와 해법 | 반양장)

실리콘밸리에서 통하는 파이썬 인터뷰 가이드 (취업과 이직을 위한 자료구조, 알고리즘, 시스템 설계 코딩 테스트 문제와 해법 | 반양장)

$27.00
Description
구글 면접관과 OPPO 수석이 집필한 눈 높은 파이썬 코딩 인터뷰 가이드북
실리콘밸리 수준의 기술 인터뷰에서 성공하는 데 필요한 파이썬 기술을 완벽하게 설명하는 책. 스택, 큐, 연결 리스트 등의 데이터 구조 기초부터 시작해 동적 프로그래밍, BFS/DFS, 유니언 파인드 등의 알고리즘을 살펴보고, 이들을 실제 면접 문제에 어떻게 효율적으로 적용할 수 있는지 면접관의 관점에서 단계별로 분석한다. 나아가 TinyURL, X, 넷플릭스 추천 시스템 등 실존 서비스를 구축해보는 연습을 통해 시스템 설계의 이론과 실습도 체계적으로 학습할 수 있게 구성했다.
저자

런젠펑,취안수쉐

구글의면접관이자소프트웨어엔지니어매니저.텍사스대학교에서박사학위를받았고,10년이상퀄컴과화웨이서근무하며컴퓨터이미징및컴퓨터비전알고리즘개발에참여했다.현재구글에서소프트웨어엔지니어매니저로일하고있으며,오랫동안구글에서면접관으로근무했다.30편이상의논문을발표했으며30개이상의특허를보유하고있다.

목차

옮긴이머리말xii
베타리더후기xiv
추천의글xvi
서문xviii

PARTI면접프로세스

CHAPTER1실리콘밸리기업면접프로세스3
1.1일반전화인터뷰3
1.2기술전화인터뷰4
__1.2.1스몰토크세션5/1.2.2기술커뮤니케이션세션5/1.2.3질문세션6
1.3현장면접6
__1.3.1현장면접질문세션7/1.3.2활발한의사소통유지하기8

PARTII데이터구조

CHAPTER2리스트13
2.1리스트의기본지식13
__2.1.1리스트생성13/2.1.2리스트원소추가14/2.1.3리스트원소삭제16
2.2예제1:가장많이연속되는1의개수구하기18
2.3예제2:이진수덧셈19
2.4예제3:범위합구하기21
__2.4.11차원배열사용풀이21/2.4.22차원배열사용풀이22
2.5예제4:무작위인덱스추출24
2.6예제5:다음순열내림차순배열구하기26
2.7예제6:숫자변환가능여부검증29
2.8예제7:순환소수표현하기30

CHAPTER3스택33
3.1스택의기본지식33
__3.1.1스택연산과시간복잡도33/3.1.2스택의3가지구현방법34
__3.1.3스택의응용37
3.2예제1:최소제거작업으로유효한괄호만들기38
3.3예제2:함수실행시간측정39

CHAPTER4큐42
4.1큐의3가지구현방법42
4.2예제1:원형큐설계46
4.3예제2:합이K보다큰최단연속하위배열의길이찾기48

CHAPTER5우선순위큐51
5.1우선순위큐의3가지구현방법51
5.2예제1:K명의근로자를고용하는데드는최소비용53
5.3예제2:연속하위수열분할가능확인55

CHAPTER6딕셔너리58
6.1딕셔너리의기본지식58
__6.1.1딕셔너리생성58/6.1.2딕셔너리원소추가60
__6.1.3딕셔너리원소접근61/6.1.4딕셔너리원소제거62
6.2예제1:합이K인연속하위배열의총개수찾기63
6.3예제2:카드구성의최댓값65
6.4예제3:삽입,삭제,반환함수를가지는데이터구조설계66
6.5예제4:LRU캐시구현68

CHAPTER7세트71
7.1세트의기본지식71
7.2세트의기본작업72
__7.2.1원소추가72/7.2.2원소삭제73/7.2.3합집합73/7.2.4교집합74

CHAPTER8연결리스트75
8.1두리스트합치기75
8.2이중포인터알고리즘76
8.3예제1:연결리스트의순환유무확인문제77
8.4예제2:두개의연결리스트의교차점찾기78
8.5예제3:무작위연결리스트복제80
8.6예제4:역방향연결리스트81

CHAPTER9이진트리83
9.1트리순회83
__9.1.1전위순회83/9.1.2중위순회84/9.1.3후위순회85/9.1.4레벨순회86
9.2트리순회의재귀적알고리즘87
__9.2.1하향식접근방법88/9.2.2상향식접근방법89
9.3예제1:최소공통조상문제90
9.4예제2:이진트리의직렬화및역직렬화91
9.5예제3:이진트리의최대경로합구하기93
9.6예제4:이진트리를이중연결리스트로변환하기95

CHAPTER10기타트리구조96
10.1트라이96
__10.1.1트라이의데이터구조97/10.1.2트라이단어삽입98
__10.1.3트라이단어검색99
10.2세그먼트트리101
10.3이진인덱스트리(펜윅트리)106
__10.3.1이진인덱스트리의표현107/10.3.2getSum()함수107
__10.3.3update()함수108/10.3.4이진인덱스트리의작동방식109
10.4예제1:부분배열의합의개수111
__10.4.1세그먼트트리알고리즘사용풀이112/10.4.2이진인덱스트리사용풀이115
__10.4.3이진탐색사용풀이118
10.5예제2:자신보다작은숫자의개수계산119
__10.5.1이진인덱스트리사용풀이120/10.5.2이진탐색사용풀이121
__10.5.3세그먼트트리사용풀이122

CHAPTER11그래프124
11.1그래프표현125
__11.1.1인접행렬125/11.1.2인접리스트125
11.2예제1:그래프깊은복사하기127
11.3예제2:그래프순환검증129
__11.3.1깊이우선탐색사용풀이129/11.3.2너비우선탐색사용풀이131
__11.3.3유니언파인드사용풀이132

PARTIII알고리즘135

CHAPTER12이진탐색137
12.1예제1:제곱근찾기137
12.2예제2:피벗(회전)된값인덱스검색138
12.3예제3:회의실예약문제139
__12.3.1심화문제1:최적화방법140
__12.3.2심화문제2:여러회의실을예약하는방법141

CHAPTER13이중포인터알고리즘142
13.1예제1:희소행렬의내적142
13.2예제2:부분문자열최소윈도문제143
13.3예제3:닫힌구간의교차구간찾기145
13.4예제4:가장긴연속1의개수찾기148
13.5예제5:목표문자열찾기-슬라이딩윈도150

CHAPTER14동적프로그래밍152
14.1동적프로그래밍의기본지식152
14.2예제1:동전거슬러주기153
14.3예제2:주식매매최대이익찾기154
14.4예제3:전체디코딩방법의수계산155

CHAPTER15깊이우선탐색157
15.1깊이우선탐색의응용157
15.2예제1:태평양과대서양횡단문제158
15.3예제2:승자예측159
15.4예제3:표현식연산자추가하기161

CHAPTER16역추적163
16.1예제1:스도쿠풀기164
16.2예제2:청소로봇166

CHAPTER17너비우선탐색169
17.1너비우선탐색의응용170
17.2예제1:벽과문171
17.3예제2:커리큘럼174
17.4예제3:버스노선175
17.5예제4:이분그래프판단177
17.6예제5:단어사다리178

CHAPTER18유니언파인드181
18.1유니언파인드의기본지식181
18.2예제:친구원구하기184
__18.2.1너비우선탐색사용풀이184/18.2.2깊이우선탐색사용풀이185
__18.2.3유니언파인드사용풀이185

CHAPTER19데이터구조와알고리즘인터뷰실전187
19.1예제1:파일시스템188
__19.1.1데이터구조설계188/19.1.2면접주요포인트191
__19.1.3코드작성191
19.2예제2:가장긴연결단어목록길이구하기192
__19.2.1단어사전데이터구조설계193/19.2.2저장소/캐싱사용194
__19.2.3면접주요포인트196
19.3예제3:원그룹196
__19.3.1원그룹의수198/19.3.2가장큰k개의원의그룹199

PARTIV시스템설계201

CHAPTER20시스템설계이론203
20.1설계단계203
__20.1.1사용시나리오,제약및가정조건확인203
__20.1.2상위아키텍처구성204/20.1.3핵심컴포넌트설계205
__20.1.4확장설계207
20.2도메인네임시스템209
20.3로드밸런서211
20.4분산캐시시스템212
20.5안정해시215

CHAPTER21시스템설계실습218
21.1분산캐시시스템설계218
__21.1.1캐시무효화218/21.1.2캐시제거정책219
__21.1.3분산키-값캐시설계시스템220
21.2웹크롤러시스템설계221
__21.2.1아키텍처설계222/21.2.2크롤러서비스구현222
__21.2.3중복링크처리225/21.2.4크롤링결과업데이트225
__21.2.5확장성설계226
21.3TinyURL의암호화와복호화226
__21.3.1시스템요구사항및목표226/21.3.2리소스추정및제약227
__21.3.3시스템API228/21.3.4핵심알고리즘설계228
__21.3.5데이터베이스설계229/21.3.6데이터파티셔닝230
__21.3.7캐싱231/21.3.8로드밸런서232
21.4검색어자동완성기능설계232
__21.4.1기본시스템설계및알고리즘233/21.4.2주요데이터구조234
__21.4.3최적화설계235
21.5뉴스피드업데이트기능설계240
21.6X애플리케이션설계243
21.7우버/리프트앱설계249

CHAPTER22멀티스레드프로그래밍253
22.1멀티스레딩면접질문253
22.2예제1:물분자의형성255
22.3예제2:0,짝수,홀수출력257

CHAPTER23머신러닝시스템설계259
23.1머신러닝의기본지식259
__23.1.1머신러닝이란무엇인가259/23.1.2머신러닝을사용하는이유260
__23.1.3지도학습과비지도학습261/23.1.4분류모델과회귀모델263
__23.1.5문제변환264/23.1.6데이터문제264
__23.1.7머신러닝작업흐름265/23.1.8피처엔지니어링266
__23.1.9과소적합과과적합267/23.1.10편향과분산269
23.2머신러닝에대한고급지식272
__23.2.1불균형이진분류데이터처리272/23.2.2가우스혼합모델과K-평균비교274
__23.2.3그레이디언트부스팅274/23.2.4의사결정트리에제약조건부여276
__23.2.5가중치업데이트277/23.2.6확률적그레이디언트부스팅277
__23.2.7정규화278
23.3머신러닝인터뷰278
__23.3.1머신러닝면접주요포인트278/23.3.2머신러닝인터뷰대응전략281
23.4예제1:검색순위시스템282
__23.4.1문제해석282/23.4.2지표분석283
__23.4.3아키텍처284/23.4.4결과선택287
__23.4.5훈련데이터생성293/23.4.6순위산정295
__23.4.7결과필터링298
23.5예제2:넷플릭스추천시스템300
__23.5.1문제해석300/23.5.2지표분석302/23.5.3아키텍처305
__23.5.4피처엔지니어링306/23.5.5추천영화

출판사 서평

실리콘밸리기술면접,무엇이다르고어떻게통과할수있는가
저자런젠펑은구글에입사해면접관이자소프트웨어엔지니어로일하고있다.수많은인터뷰를겪으며지원자와면접관양쪽의경험을쌓았고,그지식을집대성해이책을집필했다.

AI시대에잔재주는통하지않는다.기초적인자료구조와알고리즘부터시스템설계까지,다양한유형의문제를접하고논리적인사고로문제를해결해나가는감각을익혀야한다.100여개의인터뷰문제와그해법을통해한단계높은엔지니어로거듭날수있다.

책의문제는리트코드로편리하게실습이가능하며,실제면접시어떻게답하는것이좋은지면접관의관점에서설명한다.스택,큐,연결리스트등의데이터구조기초부터시작해동적프로그래밍,BFS/DFS,나아가TinyURL,X,넷플릭스추천시스템등빅데이터/머신러닝시스템설계이론과실습까지폭넓은주제를다룬다.실리콘밸리최고기업은물론국내어떤IT기업의면접도자신있게대처할수있을것이다.

주요내용실리콘밸리기업의면접과정과면접팁스택,큐,집합,연결리스트,트리,그래프등데이터구조기초와응용이진탐색,이중포인터,동적프로그래밍,DFS등실제알고리즘면접문제실습멀티스레드프로그래밍,검색랭킹,영화추천등시스템설계사례