기간: 2023.12월 2주차 ~ 2024.02월 4주차
동기: 자바로 코딩 테스트를 준비하면서 알고리즘 풀이를 시작하고자 함
참고도서 : 자바 알고리즘 인터뷰 with 코틀린
https://product.kyobobook.co.kr/detail/S000209071463
[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] 사라지는 발판
'Portpolio > java_algo_interview' 카테고리의 다른 글
자바 알고리즘 인터뷰 05. 빅오 표기법 (2) | 2023.12.26 |
---|---|
자바 알고리즘 인터뷰 04. 자료형 (1) | 2023.12.26 |
자바 알고리즘 인터뷰 03. 코틀린 (2) | 2023.12.26 |
자바 알고리즘 인터뷰 02. 자바 (0) | 2023.12.18 |
자바 알고리즘 인터뷰 01. 01장 코딩 인터뷰 & 코딩 테스트 (1) | 2023.12.17 |
댓글