이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
▶ 0장 시작하기 전에 10.1 왜 자바스크립트인가? 1____0.1.1 자바스크립트의 특징 20.2 알고리즘 성능 평가와 복잡도 70.3 빅 오 표기법 8____0.3.1 O(1) 상수 시간 9 ____0.3.2 O(log n) 로그 시간 9 ____0.3.3 O(n) 선형 시간 10 ____0.3.4 O(n2) 2차 시간 11 ____0.3.5 O(2n) 지수 시간 12 ____0.3.6 O(n!) 팩토리얼 시간 13 ____0.3.7 자바스크립트 주요 메서드의 시간 복잡도 13 ____0.3.8 공간 복잡도 14▶ 1장 문자열 패턴 191.1 문자열 객체 이해하기 19____1.1.1 불변성 19 ____1.1.2 원시 타입 vs 객체 타입 21 ____1.1.3 인덱싱 211.2 속성 및 주요 메서드 221.3 문자열 문제 유형 23____1.3.1 순서 뒤집기 23 ____1.3.2 중복 제거 26 ____1.3.3 문자열 압축 29 ____1.3.4 가장 많이 등장하는 단어 30 ____1.3.5 회문 32 ____1.3.6 애너그램 35 ____1.3.7 정수 변환 38 ____1.3.8 재정렬 41 ____1.3.9 괄호 유효성 검사 43 ____1.3.10 회전된 문자열 46 ____1.3.11 가장 긴 공통 접두사 481.4 응용 문제 49____1.4.1 애너그램 분류하기 50 ____1.4.2 가장 긴 회문 부분 문자열 찾기 52 ____1.4.3 같은 패턴 찾기 561.5 인터뷰 팁과 고려 사항 59▶ 2장 투 포인터 패턴 612.1 투 포인터 패턴 이해하기 612.2 투 포인터 패턴 문제 유형 63____2.2.1 두 수의 합 63 ____2.2.2 배열의 교집합 662.3 응용 문제: 배열 70____2.3.1 정렬된 제곱수 70 ____2.3.2 세 수의 합 74 ____2.3.3 가장 큰 사각형 78 ____2.3.4 음수 옮기기 82 ____2.3.5 제곱수의 합 862.4 응용 문제: 연결 리스트 89____2.4.1 사이클의 시작 노드 90 ____2.4.2 정렬된 두 리스트의 병합 95 ____2.4.3 연결 리스트의 합산 99 ____2.4.4 리스트의 파티션 102 ____2.4.5 리스트 역순 정렬 1052.5 인터뷰 팁과 고려 사항 108▶ 3장 슬라이딩 윈도 패턴 1113.1 슬라이딩 윈도 패턴 1113.2 문제 유형 분석 1123.3 응용 문제 114____3.3.1 가장 긴 부분 문자열 114 ____3.3.2 세 문자 118 ____3.3.3 연속된 자연수의 합 121 ____3.3.4 과일 바구니 124 ____3.3.5 가장 긴 대소문자 128 ____3.3.6 애너그램 II 132 ____3.3.7 최고 점수 1363.4 인터뷰 팁과 고려 사항 140▶ 4장 그리디 패턴 1414.1 최적화 문제 유형 1414.2 그리디 패턴 1424.3 응용 문제 144____4.3.1 강의실 145 ____4.3.2 장바구니 149 ____4.3.3 균형 잡힌 문자열 나누기 153 ____4.3.4 XY 155 ____4.3.5 구명 보트 158 ____4.3.6 결승선 161 ____4.3.7 주유소 1644.4 인터뷰 팁과 고려 사항 168▶ 5장 이진 탐색 패턴 1715.1 분할 정복 1715.2 이진 탐색 1735.3 응용 문제 177____5.3.1 첫 번째 True 177 ____5.3.2 고정점 180 ____5.3.3 제곱근 183 ____5.3.4 배열의 중복 요소 찾기 186 ____5.3.5 시작과 끝 189 ____5.3.6 다음 문자 193 ____5.3.7 최솟값 1965.4 인터뷰 팁과 고려 사항 199▶ 6장 정렬 패턴 2016.1 정렬 2016.2 정렬의 종류 202____6.2.1 버블 정렬 202 ____6.2.2 선택 정렬 203 ____6.2.3 삽입 정렬 203 ____6.2.4 퀵 정렬 203 ____6.2.5 병합 정렬 205 ____6.2.6 퀵 정렬 vs 병합 정렬 2086.3 응용 문제 209____6.3.1 0, 1, 2 정렬 210 ____6.3.2 성적순 213 ____6.3.3 빈도 정렬 216 ____6.3.4 교집합 219 ____6.3.5 문자열 섞기 222 ____6.3.6 작은 수 224 ____6.3.7 빈도순 정렬 227 ____6.3.8 리스트 정렬 2306.4 인터뷰 팁과 고려 사항 235▶ 7장 행렬 2377.1 행렬 237____7.1.1 행렬과 빅 오 2387.2 행렬 기초 학습 239____7.2.1 순회 239 ____7.2.2 셀 값 1로 만들기 240 ____7.2.3 전치 행렬 만들기 2417.3 응용 문제 243____7.3.1 음수 세기 243 ____7.3.2 90도 회전 246 ____7.3.3 나선형 순회 250 ____7.3.4 제로 행렬 254 ____7.3.5 공통 요소 258 ____7.3.6 대각선 차이 261 ____7.3.7 행렬 탐색 2647.4 인터뷰 팁과 고려 사항 267▶ 8장 너비 우선 탐색 패턴 2698.1 너비 우선 탐색 269____8.1.1 선형 자료 구조 vs 비선형 자료 구조 269 ____8.1.2 너비 우선 탐색이란? 2698.2 그래프와 트리 순회 270____8.2.1 너비 우선 탐색으로 그래프 순회 270 ____8.2.2 너비 우선 탐색으로 트리 순회 2728.3 응용 문제 274____8.3.1 이진 트리 레벨 순회 275 ____8.3.2 레벨의 평균값 279 ____8.3.3 이진 트리의 최소 깊이 281 ____8.3.4 레벨 순회 후속 노드 285 ____8.3.5 지그재그 288 ____8.3.6 섬의 개수 291 ____8.3.7 영역 채우기 295 ____8.3.8 최단 경로 3018.4 인터뷰 팁과 고려 사항 305▶ 9장 깊이 우선 탐색 패턴 3079.1 깊이 우선 탐색 3079.2 그래프와 트리 순회 307____9.2.1 깊이 우선 탐색으로 그래프 순회 307 ____9.2.2 깊이 우선 탐색으로 트리 순회 3099.3 재귀 312____9.3.1 재귀 함수의 기본 구조 313 ____9.3.2 재귀 함수의 프롤로그와 에필로그 3139.4 응용 문제 314____9.4.1 같은 트리 314 ____9.4.2 트리의 최대 깊이 317 ____9.4.3 경로의 합 320 ____9.4.4 가장 긴 경로 323 ____9.4.5 경로 합의 개수 327 ____9.4.6 가장 큰 섬 332 ____9.4.7 이진 탐색 트리 336 ____9.4.8 최소 공통 조상 3409.5 인터뷰 팁과 고려 사항 343▶ 10장 부분 집합 패턴 34510.1 부분 집합 345____10.1.1 부분 집합 345 ____10.1.2 조합 345 ____10.1.3 순열 34610.2 백트래킹 vs 동적 프로그래밍 346____10.2.1 백트래킹 346 ____10.2.2 동적 프로그래밍 34810.3 응용 문제 351____10.3.1 부분 집합 351 ____10.3.2 부분 집합 II 354 ____10.3.3 부분 집합의 합 357 ____10.3.4 같은 부분 집합의 합 364 ____10.3.5 k개의 숫자 조합 찾기 371 ____10.3.6 숫자 집합의 순열 375 ____10.3.7 대소문자 변환 순열 379 ____10.3.8 균형 잡힌 괄호 38210.4 인터뷰 팁과 고려 사항 386▶ 부록 A 자료 구조 핵심 정리 387A.1 배열 387____A.1.1 배열 선언/초기화 388 ____A.1.2 읽기 388 ____A.1.3 탐색 388 ____A.1.4 삽입 389 ____A.1.5 삭제 389A.2 연결 리스트 390____A.2.1 연결 리스트 생성 391 ____A.2.2 읽기/탐색 391 ____A.2.3 삽입 392 ____A.2.4 삭제 393A.3 스택 394____A.3.1 스택 선언/초기화 395 ____A.3.2 삽입 395 ____A.3.3 삭제 395 ____A.3.4 읽기 395 ____A.3.5 탐색 396A.4 큐 397____A.4.1 큐 선언/초기화 397 ____A.4.2 삽입 397 ____A.4.3 제거 398 ____A.4.4 확인 398A.5 그래프 399____A.5.1 그래프 구현 400 ____A.5.2 그래프 순회 401A.6 트리 404____A.6.1 트리의 종류 405 ____A.6.2 트리 구현 405 ____A.6.3 탐색 407 ____A.6.4 이진 트리의 순회 409A.7 해시 테이블 410____A.7.1 객체 410 ____A.7.2 Map 객체 411▶ 부록 B 실전 대비 문제 413문제 1 안전한 비밀번호 413문제 2 문자열 게임 414문제 3 두 카드의 조합 415문제 4 김대리의 부동산 투자 415문제 5 로미의 고민 416문제 6 보리를 이겨라 417문제 7 크리스마스 트리 418문제 8 카일의 첫 업무 419문제 9 마라톤 대회 420문제 10 최소 편집 거리 421▶ 부록 C 실전 대비 문제 풀이 423문제 1 안전전한 비밀번호 423문제 2 문자열 게임 425문제 3 두 카드의 조합 426문제 4 김대리의 부동산 투자 427문제 5 로미의 고민 428문제 6 보리를 이겨라 430문제 7 크리스마스 트리 431문제 8 카일의 첫 업무 432문제 9 마라톤 대회 434문제 10 최소 편집 거리 436찾아보기 439
|
|
코딩 테스트는 ‘문제 수’가 아니라 ‘패턴 인식’의 싸움이다알고리즘 패턴만 잡으면 처음 보는 문제도 결국 ‘어디서 본 것 같은 문제’가 된다. 이 책은 10가지 핵심 패턴을 기준으로 ‘문제를 보면 → 패턴을 식별하고 → 바로 코드로 옮기는’ 루틴을 반복해 훈련한다. 무작정 많이 풀기보다 전략적 반복과 패턴화로 핵심 로직을 재사용하고 코드의 가독성과 시간 복잡도까지 함께 챙긴다. 연습이 쌓일수록 여러분은 처음 보는 문제에서도 어떤 자료 구조를 쓰고 어떤 패턴을 적용할지를 즉시 결정할 수 있게 된다.면접관의 시선으로 본 출제 패턴 분석과 기출 문제 선별!첫 코딩 테스트에서 한 문제도 풀지 못했던 지원자가 면접관이 된 뒤 깨달은 것들을 이 한 권에 모두 담았다. 저자가 실제로 통과한 실리콘밸리 빅테크 기업 코딩 테스트의 기출 문제를 바탕으로 각 문제의 분석과 접근 방법, 풀이까지 차례대로 짚어 준다. 각 풀이 뒤에는 다른 풀이법과 복잡도를 비교하며 왜 그 풀이가 가장 유리한지 설명한다. 또한 각 장의 끝에는 코딩 인터뷰 팁과 고려 사항을 정리해 실제 인터뷰에서 ‘왜 이 방식을 택했는지, 다른 방식과 무엇이 어떻게 다른지’를 논리적으로 설명할 수 있도록 돕는다.
|