[이 책의 구성]
[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, VP of Engineering
취미 삼아 해커랭크라는 사이트에서 C++와 파이썬으로 종종 문제를 풀었지만, 항상 풀이해 설에 대한 갈망을 느끼며 좀 더 나은 알고리즘은 없는지 늘 궁금했다. 이 책에서는 평소에 등산로를 결정하는 일처럼 우리 앞에 놓여 있는 여러 가지 선택지 중 왜 이런 선택(문제 풀이 방법)을 하게 되었는지에 대한 식견은 물론, 자바와 코틀린 소스 코드를 동시에 보여준다. 이 책을 베타리딩하며 그간 내가 느껴왔던 갈증을 풀어줄 책임을 확신했다. 아니 나뿐만이 아니라 이 책을 읽는 많은 이들이 이 말에 동감하지 않을까?
- 채민석 / integrate.io, APAC 담당 세일즈엔지니어
『파이썬 알고리즘 인터뷰』를 읽으면서 내용이 너무 좋아서 ‘언젠가 내게 더 익숙한 자바/코 틀린 기반으로 책이 나오면 얼마나 좋을까?’라는 생각을 했었는데, 정말로 나왔군요! 베타 리더로 참여하면서 읽어봤는데, 코딩 인터뷰 관련 책을 이보다 잘 쓸 수 있을까 싶을 정도로 너무 잘 쓰인 책입니다.
- 홍수영 / LINE, 서버사이드 소프트웨어 엔지니어