자바 알고리즘 인터뷰 with 코틀린 (102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트)

자바 알고리즘 인터뷰 with 코틀린 (102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트)

$45.88
Description
코딩 테스트와 알고리즘 인터뷰를 준비하는 개발자들을 위한 최고의 책 『파이썬 알고리즘 인터뷰』가 자바와 코틀린 코드로 무장하고 한층 업그레이드되어 돌아왔다! 이 책 한 권이면 취업이나 이직 준비는 물론, 현업에서도 바로 활용 가능한 실무 코드를 학습할 수 있는 기본기를 다질 수 있다. 200여 가지가 넘는 풍부한 일러스트를 통해 알고리즘과 자료구조의 기초도 다시 한번 탄탄히 다져보자.

V 취업 준비생과 이직자를 위한 알고리즘과 자료구조 완벽 학습 가이드!
V 102가지 리트코드/프로그래머스 기출 문제의 상세한 분석과 풀이 해설!
2024년 세종도서 학술부문 추천도서
저자

박상길

현대자동차의인공지능연구조직에서기술리더를담당했으며,이전에는카카오에서챗봇을,다음커뮤니케이션에서검색엔진을만들며검색에서빅데이터,인공지능으로이어지는인공지능기술을두루경험했다.지금은현대자동차그룹의글로벌소프트웨어센터인포티투닷에서초거대언어모델을연구하고있다.카카오개발자공채담당위원이었으며,현대자동차에서도소프트웨어전문가채용을담당하는TFT에서활동했다.『파이썬알고리즘인터뷰』(책만,2020),『비전공자도이해할수있는AI지식』(반니,2022)을집필했다.

목차

[1부]코딩인터뷰를준비하며

1장코딩인터뷰&코딩테스트
기업인재등용의관문,코딩인터뷰
__코딩인터뷰와국내외기업들의평가기준
__국내기업들의코딩테스트플랫폼활용현황
온라인코딩테스트의사전준비사항
__연습장과필기도구
__어떤프로그래밍언어가유리할까
__자신만의코드스니펫준비
__모든테스트케이스를통과하도록풀어야한다
__타임아웃이발생하는경우
__예외처리를잊지말자
__잘못접근한풀이,어떻게대처할까
__코딩도구가필요할까
__IDE에부정적인면접관이있다면
__REPL도구로코드를검증하자
온라인코딩테스트플랫폼의특징과활용
__리트코드
__프로그래머스

[2부]자바&코틀린

2장자바,세상에서가장유명한언어
자바의역사
자바의주요특징
__객체지향프로그래밍언어
__함수형프로그래밍언어
자바의도구
__즉시실행가능한JShell
__자바는어떻게빌드하고어떻게실행할까
JVM기반언어의등장

3장코틀린,구글이인정한공식언어
코틀린의주요특징
__실용성
__상호운용성
__안전성
__우아함
코틀린의기본문법
__깔끔한for반복문
__정갈한when조건문
__편리한함수선언
__함수형프로그래밍언어
__가시성제어자
__확장함수
코틀린은어떻게빌드하고어떻게실행할까
__코틀린은과연느릴까

4장자료형
자바는어떤자료형을제공할까
__원시자료형
__참조자료형
__원시자료형과참조자료형의속도비교
자바컬렉션프레임워크의등장
__가장자주쓰게될리스트
__가장유용하게쓰게될맵
초기자료형의성능문제
무한대크기의숫자를저장할수있는자료형
코틀린은어떤자료형을제공할까
__코틀린자료형의속도는과연빠를까
코틀린은컬렉션프레임워크를어떻게구현했을까
__클래스의기능을확장하는코틀린의확장함수
__코틀린이별도로구현한컬렉션인터페이스
자바컬렉션프레임워크의실행속도

5장빅오
빅오
__n2과2n의비교
__빅오를계산하는실용적인방법
__상한과최악
__분할상환분석
__병렬화
__복잡도의특징
자바컬렉션프레임워크의빅오
__리스트시간복잡도
__맵시간복잡도
데크시간복잡도

6장문자열처리
[문제01]유효한팰린드롬
[문제02]문자열뒤집기
[문제03]로그파일재정렬
[문제04]가장흔한단어
[문제05]그룹애너그램
[문제06]가장긴팰린드롬부분문자열

[3부]선형자료구조

7장배열
동적배열
[문제07]두수의합
[문제08]빗물트래핑
[문제09]세수의합
[문제10]배열파티션I
[문제11]자신을제외한배열의곱
[문제12]주식을사고팔기가장좋은시점

8장연결리스트
[문제13]팰린드롬연결리스트
[문제14]두정렬리스트의병합
[문제15]역순연결리스트
[문제16]두수의덧셈
[문제17]페어의노드스왑
[문제18]홀짝연결리스트
[문제19]역순연결리스트II

9장스택,큐
스택

자바에서활용하기
__자바의큐선언
__자바의스택선언
__스레드안전이필요한경우
[문제20]유효한괄호
[문제21]중복문자제거
[문제22]일일온도
[문제23]큐를이용한스택구현
[문제24]스택을이용한큐구현
[문제25]원형큐디자인

10장데크,우선순위큐
데크
[문제26]원형데크디자인
우선순위큐
[문제27]k개정렬리스트병합
[문제28]원점에서가장가까운k개의점
[문제29]더맵게

11장해시테이블
해시
__생일문제
__비둘기집원리
__로드팩터
__해시함수
충돌
__개별체이닝
__오픈어드레싱
__언어별해시테이블구현방식
[문제30]해시맵디자인
[문제31]보석과돌
[문제32]중복문자없는가장긴부분문자열
[문제33]상위k빈도엘리먼트
[문제34]완주하지못한선수

[4부]비선형자료구조

12장그래프
오일러경로
해밀턴경로
그래프순회
__DFS(깊이우선탐색)
__BFS(너비우선탐색)
백트래킹
제약충족문제
[문제35]섬의개수
[문제36]전화번호문자조합
[문제37]순열
[문제38]조합
[문제39]조합의합
[문제40]부분집합
[문제41]일정재구성
[문제42]여행경로
[문제43]코스일정

13장최단경로문제
[문제44]네트워크딜레이타임
[문제45]k경유지내가장저렴한항공권
[문제46]게임맵최단거리

14장트리
트리의각명칭
그래프와트리의차이점
이진트리
[문제47]이진트리의최대깊이
[문제48]이진트리의직경
[문제49]가장긴동일값의경로
[문제50]이진트리반전
[문제51]두이진트리병합
[문제52]이진트리직렬화&역직렬화
[문제53]균형이진트리
[문제54]최소높이트리
이진탐색트리(BST)
__자가균형이진탐색트리
[문제55]정렬된배열의이진탐색트리변환
[문제56]이진탐색트리(BST)를더큰수합계트리로
[문제57]이진탐색트리(BST)합의범위
[문제58]이진탐색트리(BST)노드간최솟값
트리순회
__전위순회
__중위순회
__후위순회
[문제59]전위,중위순회결과로이진트리구축

15장힙
힙연산
__삽입
__추출
[문제60]배열의k번째큰엘리먼트
[문제61]이중우선순위큐

16장트라이
[문제62]트라이구현
[문제63]팰린드롬페어

[5부]알고리즘

17장정렬
버블정렬
삽입정렬
병합정렬
퀵정렬
안정정렬과불안정정렬
[문제64]리스트정렬
[문제65]구간병합
[문제66]삽입정렬리스트
[문제67]가장큰수
[문제68]유효한애너그램
[문제69]색정렬

18장이진검색
[문제70]이진검색
[문제71]회전정렬된배열검색
[문제72]두배열의교집합
[문제73]두수의합II
[문제74]2D행렬검색II
[문제75]입국심사

19장비트조작
부울연산자
비트연산자
비트조작퀴즈
__자릿수제한비트연산
2의보수
__2의보수숫자표현
__비트연산자NOT
[문제76]싱글넘버
[문제77]해밍거리
[문제78]두정수의합
[문제79]UTF-8검증
[문제80]1비트의개수

20장슬라이딩윈도우
[문제81]최대슬라이딩윈도우
[문제82]부분문자열이포함된최소윈도우
[문제83]가장긴반복문자대체

21장그리디알고리즘
배낭문제
동전바꾸기문제
가장큰합
[문제84]주식을사고팔기가장좋은시점II
[문제85]키에따른대기열재구성
[문제86]태스크스케줄러
[문제87]주유소
[문제88]쿠키부여

22장분할정복
[문제89]과반수엘리먼트
[문제90]괄호를삽입하는여러가지방법

23장다이나믹프로그래밍
최적부분구조
중복된하위문제들
다이나믹프로그래밍방법론
__상향식
__하향식
[문제91]피보나치수
0-1배낭문제
[문제92]최대서브배열
[문제93]계단오르기
[문제94]집도둑
[문제95]도둑질

부록2022년카카오공채만점가이드
[문제96]신고결과받기
[문제97]k진수에서소수개수구하기
[문제98]주차요금계산
[문제99]양궁대회
[문제100]양과늑대
[문제101]파괴되지않은건물
[문제102]사라지는발판

출판사 서평

[이책의구성]
[1부]‘코딩인터뷰를준비하며’
1장‘코딩인터뷰&코딩테스트’에서는각각에대한소개와어떻게하면시험을잘치를수있을지,문제풀이외에도타임아웃이나예외처리는어떻게처리해야하는지,문제를잘풀이하고점수를높이기위한여러가지팁과함께리트코드와프로그래머스에서문제를풀이하는방법을담았다.

[2부]‘자바&코틀린’
2장‘자바’에서는코딩테스트풀이를위한언어로자바를택하고세상에서가장유명한언어인자바의상세한특징과동작원리를살펴본다.3장‘코틀린’에서는자바에이어다음번대세가될것이거의확실해보이는코틀린의특징과동작원리를살펴본다.4장‘자료형’에서는자바에서제공하는자바컬렉션프레임워크를비롯한다양한자료형을살펴보며코틀린에서도어떻게자바의자료형을그대로사용할수있는지원리와구현방식을상세히살펴본다.5장‘빅오’에서는빅오에대한정의와특징을살펴보고,자바컬렉션프레임워크의빅오에대해서도자세히살펴본다.6장‘문자열처리’에서는문자열과관련한주제를살펴본다.이장부터본격적으로다양한문제풀이를진행해본다.

[3부]‘선형자료구조’
7장‘배열’부터8장‘연결리스트’,9장‘스택,큐’,10장‘데크,우선순위큐’,11장‘해시테이블’까지는선형자료구조와관련한다양한주제를살펴보고,코딩테스트문제를풀이해본다.

[4부]‘비선형자료구조’
12장‘그래프’부터13장‘최단경로문제’,14장‘트리’,15장‘힙’,16장‘트라이’까지는비선형자료구조와관련한주제를살펴보고,코딩테스트문제를풀이해본다.

[5부]‘알고리즘’
17장‘정렬’에서는알고리즘의꽃이라불리우는정렬의다양한알고리즘을순서대로하나씩살펴본다.18장‘이진검색’,19장‘비트조작’,20장‘슬라이딩윈도우’에서는관련한알고리즘을각각살펴본다.특히,21장‘그리디알고리즘’,22장‘분할정복’,23장‘다이나믹프로그래밍’은각각독립된장이면서도서로연관되어있는주제이므로,23장에서내용을최종정리해각각의특징과차이점을상세히살펴본다.

부록‘2022년카카오공채만점가이드’에서는지금까지살펴본모든알고리즘역량을총동원하여실제로2022년카카오개발자신입공채에출제되었던문제들을최선의방법으로모두풀이해본다.

[이책의주요특징]
-자바에익숙하지않은독자를위해자바의실행방식과동작원리,고급문법을함께설명한다.
-코틀린에익숙하지않은독자를위해자바와코틀린의차이점,코틀린만의장점과여러가지팁을함께소개한다.
-알고리즘을이해하기어려워하는독자를위해알고리즘에대한다양한시각화일러스트를곁들였다.
-문제풀이에익숙하지않은독자를위해다양한형태의문제를여러가지방법으로풀이해본다.
-최적화에대한이해도가낮은독자를위해여러가지최적화기법을소개하고성능을측정,비교해본다.
[이책의독자대상]
이책은‘국내최고수준IT기업에취업을희망하는신입개발자’눈높이에맞춰집필했다.

-어떻게하면자바를잘다룰수있을까?
-어떻게하면코틀린을잘익힐수있을까?
-어떻게하면코딩테스트를잘치를수있을까?
-어떻게하면알고리즘문제를잘풀이할수있을까?
-어떻게하면면접을잘볼수있을까?

이책을읽는독자는하나이상의언어로프로그래밍해본경험이있어야하며,기본적인자료구조와알고리즘에대해공부할준비가되어있어야한다.자바를잘몰라도이책을볼수는있지만,가능하면자바에대한기본지식을갖춘상태에서책을읽는편이내용을이해하는데훨씬더도움이될것이다.

|이책의개발언어와도구|
-자바11(필수)
-코틀린1.3(필수)
-인텔리제이커뮤니티에디션(권장)
-리트코드(필수)
-프로그래머스(필수)

|깃허브소스코드다운로드|
이책에서소개하는모든문제풀이에사용된코드는깃허브를통해제공되며,다음의깃허브주소에서모든문제의풀이코드를다운로드할수있다.
-https://github.com/onlybooks/java-algorithm-interview


[베타리더한마디]
언뜻보면이책은저자의유명한전작인『파이썬알고리즘인터뷰』를단순히자바버전으로출간한듯보이지만,전혀새로운콘셉트의책이라할수있다.이책에실린실습예제는자바와코틀린으로제공되는데이렇게두가지언어로함께제공하는것이이책의가장큰장점이자,또다른재미를안겨준다.아울러이책에서는파이썬코드구현의견도제시해주기때문에알고리즘을구현할때세가지언어를비교하며설명해주는점이더욱흥미로웠다.또한전반적인알고리즘설명외에도특히,왜알고리즘을사용해야하는지,실제업무에서는어떻게활용해야하는지등평소고민했던부분에큰도움을받았다.
-박찬웅/소프트웨어개발자

기업은개발자를뽑을때일차적인검증수단으로코딩테스트를봅니다.이책은리트코드문제를선별해출제자의의도와문제해결방법을엿볼수있습니다.알고리즘개념정리가필요하거나자바와코틀린언어로코딩테스트를준비하는분에게이책을추천합니다.
-오동주/안드로이드개발자

이책을전작의개정판으로생각할수도있지만,전혀다른언어인자바를사용하기에다른책이라고봐도좋다고생각합니다.파이썬을공부하면서전작을읽었고많은도움을받았습니다.꼭코딩테스트를위해서가아니라자바나코틀린을처음접하는책으로도좋다고생각합니다.
-이상우/카카오,톡메시징파트개발자

신입개발자를위한필수자료구조책을소개합니다.(제가아는한)코틀린을통해코딩인터뷰/테스트를다루는첫번째책이기도합니다.필수적인기본자료구조뿐만아니라그리디알고리즘이나다이나믹프로그래밍같은고급주제까지다루기에폭넓은주제를공부할수있습니다.
-정현준/AtlasLabs,VPofEngineering

취미삼아해커랭크라는사이트에서C++와파이썬으로종종문제를풀었지만,항상풀이해설에대한갈망을느끼며좀더나은알고리즘은없는지늘궁금했다.이책에서는평소에등산로를결정하는일처럼우리앞에놓여있는여러가지선택지중왜이런선택(문제풀이방법)을하게되었는지에대한식견은물론,자바와코틀린소스코드를동시에보여준다.이책을베타리딩하며그간내가느껴왔던갈증을풀어줄책임을확신했다.아니나뿐만이아니라이책을읽는많은이들이이말에동감하지않을까?
-채민석/integrate.io,APAC담당세일즈엔지니어

『파이썬알고리즘인터뷰』를읽으면서내용이너무좋아서‘언젠가내게더익숙한자바/코틀린기반으로책이나오면얼마나좋을까?’라는생각을했었는데,정말로나왔군요!베타리더로참여하면서읽어봤는데,코딩인터뷰관련책을이보다잘쓸수있을까싶을정도로너무잘쓰인책입니다.
-홍수영/LINE,서버사이드소프트웨어엔지니어