장바구니 담기 close

장바구니에 상품을 담았습니다.

자바 알고리즘 인터뷰 with 코틀린

자바 알고리즘 인터뷰 with 코틀린

  • 박상길
  • |
  • 책만
  • |
  • 2023-09-20 출간
  • |
  • 904페이지
  • |
  • 180 X 235 X 43mm
  • |
  • ISBN 9791189909550
판매가

42,000원

즉시할인가

41,580

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
41,580

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

[이 책의 구성]
[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, 서버사이드 소프트웨어 엔지니어

목차

[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~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.