패턴 공략! 자바스크립트 코딩 테스트 (무작정 풀지 말고 10가지 패턴으로 꿰뚫어라!)

패턴 공략! 자바스크립트 코딩 테스트 (무작정 풀지 말고 10가지 패턴으로 꿰뚫어라!)

$34.00
Description
패턴을 읽으면 답이 보인다!
코딩 테스트에서 패턴을 읽어내는 능력은 단지 합격을 위한 기술이 아니다. 반복되는 에러의 원인을 빠르게 찾고, 복잡한 코드를 단순하게 재구성하며, 변경이 잦은 요구사항 속에서도 안정적인 구조를 설계하도록 돕는, 개발자의 핵심 사고방식이다.
패턴을 이해한 사람은 문제를 ‘처음 보는 형태’가 아니라 ‘이미 알고 있는 구조’로 해석하므로 어떤 문제 앞에서도 더 빠르고 정확하게 판단할 수 있다. 이 책은 그 패턴 사고를 단단한 무기로 만들어, 코딩 테스트는 물론 실제 개발 현장까지 이어지는 문제 해결력을 향샹시킨다.
저자

이문규

저자:이문규
캐나다에서프로그래밍을전공하고현지에서개발자로서첫발을내디뎠다.이후Salesforce,T4G,Accedo등북미유수의테크기업을거쳐현재시니어소프트웨어개발자로일하고있다.자료구조,알고리즘,시스템디자인등엔지니어링의근간이되는기본기를중요시하며복잡한문제를해결하는단순함의힘을믿는다.
풍부한면접관경험과신입개발자온보딩프로세스를주도한이력을바탕으로‘기본에충실한,심플한코드’가최고의코드라는확고한철학을가지고있다.현재유튜브채널‘코딩문’(@codingmoon)을운영하고있으며온라인강의를통해개발자들과활발히소통하며실무에서쌓은노하우와인사이트를나누고있다.

목차

▶0장시작하기전에1
0.1왜자바스크립트인가?1
____0.1.1자바스크립트의특징2
0.2알고리즘성능평가와복잡도7
0.3빅오표기법8
____0.3.1O(1)상수시간9
____0.3.2O(logn)로그시간9
____0.3.3O(n)선형시간10
____0.3.4O(n2)2차시간11
____0.3.5O(2n)지수시간12
____0.3.6O(n!)팩토리얼시간13
____0.3.7자바스크립트주요메서드의시간복잡도13
____0.3.8공간복잡도14

▶1장문자열패턴19
1.1문자열객체이해하기19
____1.1.1불변성19
____1.1.2원시타입vs객체타입21
____1.1.3인덱싱21
1.2속성및주요메서드22
1.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가장긴공통접두사48
1.4응용문제49
____1.4.1애너그램분류하기50
____1.4.2가장긴회문부분문자열찾기52
____1.4.3같은패턴찾기56
1.5인터뷰팁과고려사항59

▶2장투포인터패턴61
2.1투포인터패턴이해하기61
2.2투포인터패턴문제유형63
____2.2.1두수의합63
____2.2.2배열의교집합66
2.3응용문제:배열70
____2.3.1정렬된제곱수70
____2.3.2세수의합74
____2.3.3가장큰사각형78
____2.3.4음수옮기기82
____2.3.5제곱수의합86
2.4응용문제:연결리스트89
____2.4.1사이클의시작노드90
____2.4.2정렬된두리스트의병합95
____2.4.3연결리스트의합산99
____2.4.4리스트의파티션102
____2.4.5리스트역순정렬105
2.5인터뷰팁과고려사항108

▶3장슬라이딩윈도패턴111
3.1슬라이딩윈도패턴111
3.2문제유형분석112
3.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애너그램II132
____3.3.7최고점수136
3.4인터뷰팁과고려사항140

▶4장그리디패턴141
4.1최적화문제유형141
4.2그리디패턴142
4.3응용문제144
____4.3.1강의실145
____4.3.2장바구니149
____4.3.3균형잡힌문자열나누기153
____4.3.4XY155
____4.3.5구명보트158
____4.3.6결승선161
____4.3.7주유소164
4.4인터뷰팁과고려사항168

▶5장이진탐색패턴171
5.1분할정복171
5.2이진탐색173
5.3응용문제177
____5.3.1첫번째True177
____5.3.2고정점180
____5.3.3제곱근183
____5.3.4배열의중복요소찾기186
____5.3.5시작과끝189
____5.3.6다음문자193
____5.3.7최솟값196
5.4인터뷰팁과고려사항199

▶6장정렬패턴201
6.1정렬201
6.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병합정렬208
6.3응용문제209
____6.3.10,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리스트정렬230
6.4인터뷰팁과고려사항235

▶7장행렬237
7.1행렬237
____7.1.1행렬과빅오238
7.2행렬기초학습239
____7.2.1순회239
____7.2.2셀값1로만들기240
____7.2.3전치행렬만들기241
7.3응용문제243
____7.3.1음수세기243
____7.3.290도회전246
____7.3.3나선형순회250
____7.3.4제로행렬254
____7.3.5공통요소258
____7.3.6대각선차이261
____7.3.7행렬탐색264
7.4인터뷰팁과고려사항267

▶8장너비우선탐색패턴269
8.1너비우선탐색269
____8.1.1선형자료구조vs비선형자료구조269
____8.1.2너비우선탐색이란?269
8.2그래프와트리순회270
____8.2.1너비우선탐색으로그래프순회270
____8.2.2너비우선탐색으로트리순회272
8.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최단경로301
8.4인터뷰팁과고려사항305

▶9장깊이우선탐색패턴307
9.1깊이우선탐색307
9.2그래프와트리순회307
____9.2.1깊이우선탐색으로그래프순회307
____9.2.2깊이우선탐색으로트리순회309
9.3재귀312
____9.3.1재귀함수의기본구조313
____9.3.2재귀함수의프롤로그와에필로그313
9.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최소공통조상340
9.5인터뷰팁과고려사항343

▶10장부분집합패턴345
10.1부분집합345
____10.1.1부분집합345
____10.1.2조합345
____10.1.3순열346
10.2백트래킹vs동적프로그래밍346
____10.2.1백트래킹346
____10.2.2동적프로그래밍348
10.3응용문제351
____10.3.1부분집합351
____10.3.2부분집합II354
____10.3.3부분집합의합357
____10.3.4같은부분집합의합364
____10.3.5k개의숫자조합찾기371
____10.3.6숫자집합의순열375
____10.3.7대소문자변환순열379
____10.3.8균형잡힌괄호382
10.4인터뷰팁과고려사항386

▶부록A자료구조핵심정리387
A.1배열387
____A.1.1배열선언/초기화388
____A.1.2읽기388
____A.1.3탐색388
____A.1.4삽입389
____A.1.5삭제389
A.2연결리스트390
____A.2.1연결리스트생성391
____A.2.2읽기/탐색391
____A.2.3삽입392
____A.2.4삭제393
A.3스택394
____A.3.1스택선언/초기화395
____A.3.2삽입395
____A.3.3삭제395
____A.3.4읽기395
____A.3.5탐색396
A.4큐397
____A.4.1큐선언/초기화397
____A.4.2삽입397
____A.4.3제거398
____A.4.4확인398
A.5그래프399
____A.5.1그래프구현400
____A.5.2그래프순회401
A.6트리404
____A.6.1트리의종류405
____A.6.2트리구현405
____A.6.3탐색407
____A.6.4이진트리의순회409
A.7해시테이블410
____A.7.1객체410
____A.7.2Map객체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가지핵심패턴을기준으로‘문제를보면→패턴을식별하고→바로코드로옮기는’루틴을반복해훈련한다.무작정많이풀기보다전략적반복과패턴화로핵심로직을재사용하고코드의가독성과시간복잡도까지함께챙긴다.연습이쌓일수록여러분은처음보는문제에서도어떤자료구조를쓰고어떤패턴을적용할지를즉시결정할수있게된다.

면접관의시선으로본출제패턴분석과기출문제선별!
첫코딩테스트에서한문제도풀지못했던지원자가면접관이된뒤깨달은것들을이한권에모두담았다.저자가실제로통과한실리콘밸리빅테크기업코딩테스트의기출문제를바탕으로각문제의분석과접근방법,풀이까지차례대로짚어준다.각풀이뒤에는다른풀이법과복잡도를비교하며왜그풀이가가장유리한지설명한다.또한각장의끝에는코딩인터뷰팁과고려사항을정리해실제인터뷰에서‘왜이방식을택했는지,다른방식과무엇이어떻게다른지’를논리적으로설명할수있도록돕는다.