이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
옮긴이 머리말 베타리더 후기 추천의 글 서문 PART I 면접 프로세스CHAPTER 1 실리콘밸리 기업 면접 프로세스 1.1 일반 전화 인터뷰 1.2 기술 전화 인터뷰 __1.2.1 스몰 토크 세션 / 1.2.2 기술 커뮤니케이션 세션 / 1.2.3 질문 세션 1.3 현장 면접 __1.3.1 현장 면접 질문 세션 / 1.3.2 활발한 의사소통 유지하기 PART II 데이터 구조CHAPTER 2 리스트 2.1 리스트의 기본 지식 __2.1.1 리스트 생성 1/ 2.1.2 리스트 원소 추가 / 2.1.3 리스트 원소 삭제 2.2 예제 1: 가장 많이 연속되는 1의 개수 구하기 2.3 예제 2: 이진수 덧셈 2.4 예제 3: 범위 합 구하기 __2.4.1 1차원 배열 사용 풀이 / 2.4.2 2차원 배열 사용 풀이 2.5 예제 4: 무작위 인덱스 추출 2.6 예제 5: 다음 순열 내림차순 배열 구하기 2.7 예제 6: 숫자 변환 가능 여부 검증 2.8 예제 7: 순환소수 표현하기 CHAPTER 3 스택 3.1 스택의 기본 지식 __3.1.1 스택 연산과 시간 복잡도 / 3.1.2 스택의 3가지 구현 방법 __3.1.3 스택의 응용 3.2 예제 1: 최소 제거 작업으로 유효한 괄호 만들기 3.3 예제 2: 함수 실행 시간 측정 CHAPTER 4 큐 4.1 큐의 3가지 구현 방법 4.2 예제 1: 원형 큐 설계 4.3 예제 2: 합이 K보다 큰 최단 연속 하위 배열의 길이 찾기 CHAPTER 5 우선순위 큐 5.1 우선순위 큐의 3가지 구현 방법 5.2 예제 1: K명의 근로자를 고용하는 데 드는 최소 비용 5.3 예제 2: 연속 하위 수열 분할 가능 확인 CHAPTER 6 딕셔너리 6.1 딕셔너리의 기본 지식 __6.1.1 딕셔너리 생성 / 6.1.2 딕셔너리 원소 추가 __6.1.3 딕셔너리 원소 접근 / 6.1.4 딕셔너리 원소 제거 6.2 예제 1: 합이 K인 연속 하위 배열의 총 개수 찾기 6.3 예제 2: 카드 구성의 최댓값 6.4 예제 3: 삽입, 삭제, 반환 함수를 가지는 데이터 구조 설계 6.5 예제 4: LRU 캐시 구현 CHAPTER 7 세트 7.1 세트의 기본 지식 7.2 세트의 기본 작업 __7.2.1 원소 추가 / 7.2.2 원소 삭제 / 7.2.3 합집합 / 7.2.4 교집합 CHAPTER 8 연결 리스트 8.1 두 리스트 합치기 8.2 이중 포인터 알고리즘 8.3 예제 1: 연결 리스트의 순환 유무 확인 문제 8.4 예제 2: 두 개의 연결 리스트의 교차점 찾기 8.5 예제 3: 무작위 연결 리스트 복제 8.6 예제 4: 역방향 연결 리스트 CHAPTER 9 이진 트리 9.1 트리 순회 __9.1.1 전위 순회 / 9.1.2 중위 순회 / 9.1.3 후위 순회 / 9.1.4 레벨 순회 9.2 트리 순회의 재귀적 알고리즘 __9.2.1 하향식 접근 방법 / 9.2.2 상향식 접근 방법 9.3 예제 1: 최소 공통 조상 문제 9.4 예제 2: 이진 트리의 직렬화 및 역직렬화 9.5 예제 3: 이진 트리의 최대 경로합 구하기 9.6 예제 4: 이진 트리를 이중 연결 리스트로 변환하기 CHAPTER 10 기타 트리 구조 10.1 트라이 __10.1.1 트라이의 데이터 구조 / 10.1.2 트라이 단어 삽입 __10.1.3 트라이 단어 검색 10.2 세그먼트 트리 10.3 이진 인덱스 트리(펜윅 트리) __10.3.1 이진 인덱스 트리의 표현 / 10.3.2 getSum() 함수 __10.3.3 update() 함수 / 10.3.4 이진 인덱스 트리의 작동 방식 10.4 예제 1: 부분 배열의 합의 개수 __10.4.1 세그먼트 트리 알고리즘 사용 풀이 / 10.4.2 이진 인덱스 트리 사용 풀이 __10.4.3 이진 탐색 사용 풀이 10.5 예제 2: 자신보다 작은 숫자의 개수 계산 __10.5.1 이진 인덱스 트리 사용 풀이 / 10.5.2 이진 탐색 사용 풀이 __10.5.3 세그먼트 트리 사용 풀이 CHAPTER 11 그래프 11.1 그래프 표현 __11.1.1 인접 행렬 / 11.1.2 인접 리스트 11.2 예제 1: 그래프 깊은 복사하기 11.3 예제 2: 그래프 순환 검증 __11.3.1 깊이 우선 탐색 사용 풀이 / 11.3.2 너비 우선 탐색 사용 풀이 __11.3.3 유니언 파인드 사용 풀이 PART III 알고리즘 CHAPTER 12 이진 탐색 12.1 예제 1: 제곱근 찾기 12.2 예제 2: 피벗(회전)된 값 인덱스 검색 12.3 예제 3: 회의실 예약 문제 __12.3.1 심화 문제 1: 최적화 방법 __12.3.2 심화 문제 2: 여러 회의실을 예약하는 방법 CHAPTER 13 이중 포인터 알고리즘 13.1 예제 1: 희소행렬의 내적 13.2 예제 2: 부분 문자열 최소 윈도 문제 13.3 예제 3: 닫힌 구간의 교차 구간 찾기 13.4 예제 4: 가장 긴 연속 1의 개수 찾기 13.5 예제 5: 목표 문자열 찾기-슬라이딩 윈도 CHAPTER 14 동적 프로그래밍 14.1 동적 프로그래밍의 기본 지식 14.2 예제 1: 동전 거슬러주기 14.3 예제 2: 주식 매매 최대 이익 찾기 14.4 예제 3: 전체 디코딩 방법의 수 계산 CHAPTER 15 깊이 우선 탐색 15.1 깊이 우선 탐색의 응용 15.2 예제 1: 태평양과 대서양 횡단 문제 15.3 예제 2: 승자 예측 15.4 예제 3: 표현식 연산자 추가하기 CHAPTER 16 역추적 16.1 예제 1: 스도쿠 풀기 16.2 예제 2: 청소 로봇 CHAPTER 17 너비 우선 탐색 17.1 너비 우선 탐색의 응용 17.2 예제 1: 벽과 문 17.3 예제 2: 커리큘럼 17.4 예제 3: 버스 노선 17.5 예제 4: 이분 그래프 판단 17.6 예제 5: 단어 사다리 CHAPTER 18 유니언 파인드 18.1 유니언 파인드의 기본 지식 18.2 예제: 친구 원 구하기 __18.2.1 너비 우선 탐색 사용 풀이 / 18.2.2 깊이 우선 탐색 사용 풀이 __18.2.3 유니언 파인드 사용 풀이 CHAPTER 19 데이터 구조와 알고리즘 인터뷰 실전 19.1 예제 1: 파일 시스템 __19.1.1 데이터 구조 설계 / 19.1.2 면접 주요 포인트 __19.1.3 코드 작성 19.2 예제 2: 가장 긴 연결 단어 목록 길이 구하기 __19.2.1 단어 사전 데이터 구조 설계 / 19.2.2 저장소/캐싱 사용 __19.2.3 면접 주요 포인트 19.3 예제 3: 원 그룹 __19.3.1 원 그룹의 수 / 19.3.2 가장 큰 k개의 원의 그룹 PART IV 시스템 설계 CHAPTER 20 시스템 설계 이론 20.1 설계 단계 __20.1.1 사용 시나리오, 제약 및 가정 조건 확인 __20.1.2 상위 아키텍처 구성 / 20.1.3 핵심 컴포넌트 설계 __20.1.4 확장 설계 20.2 도메인 네임 시스템 20.3 로드 밸런서 20.4 분산 캐시 시스템 20.5 안정 해시 CHAPTER 21 시스템 설계 실습 21.1 분산 캐시 시스템 설계 __21.1.1 캐시 무효화 / 21.1.2 캐시 제거 정책 __21.1.3 분산 키-값 캐시 설계 시스템 21.2 웹 크롤러 시스템 설계 __21.2.1 아키텍처 설계 / 21.2.2 크롤러 서비스 구현 __21.2.3 중복 링크 처리 / 21.2.4 크롤링 결과 업데이트 __21.2.5 확장성 설계 21.3 TinyURL의 암호화와 복호화 __21.3.1 시스템 요구 사항 및 목표 / 21.3.2 리소스 추정 및 제약 __21.3.3 시스템 API / 21.3.4 핵심 알고리즘 설계 __21.3.5 데이터베이스 설계 / 21.3.6 데이터 파티셔닝 __21.3.7 캐싱 / 21.3.8 로드 밸런서 21.4 검색어 자동 완성 기능 설계 __21.4.1 기본 시스템 설계 및 알고리즘 / 21.4.2 주요 데이터 구조 __21.4.3 최적화 설계 21.5 뉴스피드 업데이트 기능 설계 21.6 X 애플리케이션 설계 21.7 우버/리프트 앱 설계 CHAPTER 22 멀티스레드 프로그래밍 22.1 멀티스레딩 면접 질문 22.2 예제 1: 물 분자의 형성 22.3 예제 2: 0, 짝수, 홀수 출력 CHAPTER 23 머신러닝 시스템 설계 23.1 머신러닝의 기본 지식 __23.1.1 머신러닝이란 무엇인가 / 23.1.2 머신러닝을 사용하는 이유 __23.1.3 지도 학습과 비지도 학습 / 23.1.4 분류 모델과 회귀 모델 __23.1.5 문제 변환 / 23.1.6 데이터 문제 __23.1.7 머신러닝 작업 흐름 / 23.1.8 피처 엔지니어링 __23.1.9 과소적합과 과적합 / 23.1.10 편향과 분산 23.2 머신러닝에 대한 고급 지식 __23.2.1 불균형 이진 분류 데이터 처리 / 23.2.2 가우스 혼합 모델과 K-평균 비교 __23.2.3 그레이디언트 부스팅 / 23.2.4 의사 결정 트리에 제약 조건 부여 __23.2.5 가중치 업데이트 / 23.2.6 확률적 그레이디언트 부스팅 __23.2.7 정규화 23.3 머신러닝 인터뷰 __23.3.1 머신러닝 면접 주요 포인트 / 23.3.2 머신러닝 인터뷰 대응 전략 23.4 예제 1: 검색 순위 시스템 __23.4.1 문제 해석 282 / 23.4.2 지표 분석 __23.4.3 아키텍처 / 23.4.4 결과 선택 __23.4.5 훈련 데이터 생성 / 23.4.6 순위 산정 __23.4.7 결과 필터링 23.5 예제 2: 넷플릭스 추천 시스템 __23.5.1 문제 해석 / 23.5.2 지표 분석 / 23.5.3 아키텍처 __23.5.4 피처 엔지니어링 / 23.5.5 추천 영화 리스트 생성 __23.5.6 훈련 데이터 생성 / 23.5.7 순위 산정 찾아보기
|
任建峰
全書學
|
구글 면접관과 OPPO 수석이 집필한 눈 높은 파이썬 코딩 인터뷰 가이드북 실리콘밸리 수준의 기술 인터뷰에서 성공하는 데 필요한 파이썬 기술을 완벽하게 설명하는 책. 스택, 큐, 연결 리스트 등의 데이터 구조 기초부터 시작해 동적 프로그래밍, BFS/DFS, 유니언 파인드 등의 알고리즘을 살펴보고, 이들을 실제 면접 문제에 어떻게 효율적으로 적용할 수 있는지 면접관의 관점에서 단계별로 분석한다. 나아가 TinyURL, X, 넷플릭스 추천 시스템 등 실존 서비스를 구축해보는 연습을 통해 시스템 설계의 이론과 실습도 체계적으로 학습할 수 있게 구성했다. 주요 내용● 실리콘밸리 기업의 면접 과정과 면접 팁● 스택, 큐, 집합, 연결 리스트, 트리, 그래프 등 데이터 구조 기초와 응용● 이진 탐색, 이중 포인터, 동적 프로그래밍, DFS 등 실제 알고리즘 면접 문제 실습● 멀티스레드 프로그래밍, 검색 랭킹, 영화 추천 등 시스템 설계 사례
|