품목정보
발행일 | 2023년 09월 20일 |
---|---|
쪽수, 무게, 크기 | 904쪽 | 1586g | 180*235*43mm |
ISBN13 | 9791189909550 |
ISBN10 | 1189909553 |
발행일 | 2023년 09월 20일 |
---|---|
쪽수, 무게, 크기 | 904쪽 | 1586g | 180*235*43mm |
ISBN13 | 9791189909550 |
ISBN10 | 1189909553 |
[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] 사라지는 발판 |
『파이썬 알고리즘 인터뷰』로 유명한 작가들이 모여, 이번에는 『자바 알고리즘 인터뷰』로 돌아왔습니다. 취업과 이직을 위해 코딩테스트를 준비하는 분들에게 기초를 튼튼하게 다질 수 있고, 상세한 문제 풀이가 가득한 『자바 알고리즘 인터뷰』를 추천합니다.
『자바 알고리즘 인터뷰』는 5부와 부록으로 구성되어 있습니다.
1부에서는 코딩 인터뷰와 코딩 테스트에 대한 소개와 준비하는 방법을 자세히 알려줍니다.
2부에서는 자바와 코틀린의 특징, 동작 원리의 차이점과 고급 문법에 대해 다루고, 빅오(Big-O), 문자열 처리를 살펴봅니다.
3부에서는 자료구조 중 선형 자료구조인 배열부터 연결 리스트, 스택, 큐, 데크, 우선순위 큐, 해시 테이블을 살펴봅니다.
4부에서는 자료구조 중 비선형 자료구조인 그래프와 트리, 힙, 트라이, 최단 경로 문제를 살펴봅니다.
5부에서는 알고리즘을 다룹니다. 정렬부터 시작하여 다이나믹 프로그래밍까지 살펴봅니다.
마지막 부록에서는 2022년도 카카오 개발자 신입 공채에 출제되었던 7개의 문제를 풀이합니다.
책에서 인상적이었던 문제로 리트코드에 나온 <두 수의 합>을 구하는 문제였습니다. 배열의 두 숫자를 더하는 간단한 문제였지만 무차별 대입부터 시작하여 다양한 방식으로 문제를 풀 수 있었고, 최적화를 통해 어떻게 문제를 풀어야 효율적, 비효율적인지 알 수 있었습니다.
두 번째로 2022년 카카오 코딩 테스트 문제였던 <주차 요금 계산> 문제입니다. 코딩 테스트 문제중에서는 현실과 동떨어진 문제가 많았는데, 실생활에서 자주 마주칠 수 있는 문제를 풀게되어 반가웠습니다. 비즈니스 로직부터 차례대로 구현하면 되었는데, 정해진 시간 안으로 주차된 차한테는 기본 요금을 계산하고 그 이상의 경우 초과 요금을 계산하는 것이었습니다. 다만 머리 속에서 생각하는 것과 실제 코드로 구현하는 것은 상당한 차이가 있어서, 앞으로 꾸준히 연습을 해야겠다는 다짐을 했습니다.
책의 장점으로 첫째, 자바와 코틀린을 동시에 배울 수 있습니다. 자바의 실행 방식을 비롯하여 고급 문법들을 알려주고, 코틀린을 처음 접하는 독자들을 위해 자바와 코틀린의 차이점과 여러가지 팁을 소개합니다.
둘째, 102개의 문제(리트코드 문제 88개+프로그래머스 문제 7개+카카오 기출 문제 7개)를 풀어보면서 코딩 테스트 대비를 단단히 할 수 있습니다. 리트코드를 포함하여 국내 코딩 테스트 플랫폼으로 많이 사용하는 프로그래머스의 사용법과 함께 문제를 소개합니다. 마지막으로 2022년에 출제된 카카오 채용 문제를 풀면서 책에서 배운 모든 방법을 확인해봅니다.
셋째, 친절한 일러스트와 설명으로 이해가 잘 되었습니다. 이 책의 저자와 일러스트가 같은
『비전공자도 이해할 수 있는 AI 지식』(박상길 지음, 정진호 그림, 반니, 2022)을 읽었던 적이 있었는데, 글과 수식으로만 이해하기 힘든 AI를 이해하는 데 큰 도움을 주었던 기억이 납니다. 『자바 알고리즘 인터뷰』도 다양하면서도 친절한 일러스트로 이해를 돕고, 특히 코드의 주석까지 세세하게 설명해줘서 코드의 품질을 높이는 데에도 도움이 되었습니다.
『자바 알고리즘 인터뷰』은 저자의 정성이 느껴지는 책으로 자료구조와 알고리즘, 자바에서 놓칠 수 있는 부분을 꼼꼼하게 다뤄서 몰랐던 부분을 채울 수 있었습니다. 예를 들어, ‘비둘기 집’을 통해 해시 충돌을 설명하는 부분이나, 자바의 스택 선언 부분에서 Deque 자료형을 사용해야만 하는 이유를 보면서 즐거움과 세심한 부분까지 신경을 쓴 책이라는 것을 느꼈습니다.
책에서 가장 마음에 들었던 점은 비교 중심의 전개였습니다. 사고의 본질을 무엇인가를 연구한 책, 『사고의 본질』(더글러스 호프스태터, 에마뉘엘 상데 지음, 김태훈 번역, 최재천 감수, 아르떼, 2017)에서는 ‘인간은 모든 것을 비교하면서 이해한다’고 합니다. <자바 알고리즘 인터뷰>는 독자가 이해하기 쉽도록 자바와 코틀린의 비교부터 시작해서 자료구조와 알고리즘들 간의 비교, 문제에서 다양한 해결방법을 서로 비교했습니다. 저자와 함께 102의 문제를 풀어보면서, 독자들은 더 나은 선택지를 찾을 수 있는 문제 해결력을 기를 수 있을 것이라 생각합니다.
이 책은 단순히 코딩 테스트만을 위한 공부가 아닌, 실무에 쓰일 수 있는 코드로 초급자뿐만 아니라 이미 현업에 있는 개발자에게도 유용하므로 앞으로 개발 인생에 좋은 길잡이가 될 것입니다.
이 책에 대해 이야기하려면 먼저 전작(?)인 파이썬 알
책의 내용은 전작(?)인 파이썬 알고리즘 인터뷰의 95가지
개인적으로 이 책은 자료구조와 알고리즘에 중점을 두고
저자님 진짜 선배로서 해주고 싶은 말들을 너무 많이 담아주셔서 현재 배워가고 있는 입장에서 큰 도움이 되는 책이였습니다. 가장 인상 깊은 점은 의문점이 들었을 때 그점을 캐치 하셔서 설명을 해주는 과정이 큰 도움이 되었고 그로인해 학습에 진행방향이 순조로웠던 점이 좋았어요.
계속 보면서 학습을 하니 알고리즘 실력이 전 보다 크게 늘었다는 느낌을 받았고 저자님 덕분에 내년이 기대가 되네요.
분량적으로 많다고 생각은 했지만 이 책은 분량의 문제가 아니라 이 모든 해설과정을 머릿속에 담아가는 과정이 중요한거 같아요. 그래서 앞으로 2회독 3회독 늘려서 읽으려고 합니다.