《자바 알고리즘 인터뷰 with 코틀린》(박상길, 책만)을 Java 중심으로 공부하면서 남기는 학습용 저장소입니다.
원본 예제 코드(src/)는 손대지 않고, notes/에 개념 정리와 문제 풀이 회고를 쌓아갑니다.
| 항목 | 내용 |
|---|---|
| 원본 저장소 | onlybooks/java-algorithm-interview (fork) |
| 도서 정보 | 책만 도서 페이지 |
| 학습 언어 | Java (코틀린 코드는 비교·참고용) |
| 문제 출처 | LeetCode · 프로그래머스 |
| 진도 관리 | 챕터 단위 (진도표 참고) |
- 자료구조·알고리즘의 동작 원리를 말로 설명할 수 있을 정도로 이해한다
- 문제를 보고 어떤 자료구조·기법을 쓸지 판단하는 감각을 기른다
- 모든 풀이의 시간·공간 복잡도를 근거와 함께 설명한다
- 정리한 내용을 그대로 블로그 글로 옮길 수 있는 형태로 남긴다
java-algorithm-interview/
├── src/ # 원본(책) 예제 코드 — 수정하지 않음
│ ├── ch02 ~ ch24/
│ └── datatype/ # ListNode, TreeNode 공용 자료형
├── test/ # 원본 테스트 코드
├── assets/ # 원본 이미지(표지, 마인드맵)
├── notes/ # ⭐ 내 학습 노트
│ ├── README.md # 노트 인덱스
│ ├── TEMPLATE.md # 챕터 노트 템플릿
│ ├── ch01 ~ ch24/
│ │ ├── README.md # 개념 정리 + 문제별 회고
│ │ └── solutions/ # 내가 직접 푼 Java 코드 (PN.java)
│ └── ...
└── README.md
노트 전체 목록은 notes/README.md에 있습니다. 원본 코드와 내 코드를 섞지 않는 것이 핵심입니다. 나중에 git fetch upstream으로 원본을 갱신해도 충돌이 나지 않습니다.
| 단계 | 하는 일 | 남기는 것 |
|---|---|---|
| 1 | 문제를 먼저 직접 푼다 (20~30분 타임박스) | notes/chXX/solutions/PN.java |
| 2 | 시간 초과 시 힌트만 보고 재시도, 그래도 안 되면 책 풀이 확인 | 막힌 지점 메모 |
| 3 | 책 풀이(src/chXX)와 내 풀이를 비교 |
접근 차이·복잡도 차이 |
| 4 | 챕터 노트에 개념/패턴/실수 정리 | notes/chXX/README.md |
| 5 | 3일 · 1주 · 1달 뒤 재풀이하고 진도표 갱신 | 상태 뱃지 업데이트 |
진행 상태 표기
⬜ 예정 · 🔄 진행 중 · ✅ 완료 · 🔁 재복습 필요
챕터 노트 템플릿 (notes/TEMPLATE.md)
# NN장. 주제
> 학습일: YYYY-MM-DD | 상태: 🔄
## 1. 핵심 개념
- 자료구조/알고리즘의 정의와 동작 원리
- 시간·공간 복잡도
## 2. 자바 구현 포인트
- 어떤 클래스/API를 쓰는가 (ArrayList, Deque, PriorityQueue, ...)
- 자주 쓰는 관용구와 주의점
## 3. 문제 풀이
### PN. 문제 제목 (★)
- **접근**: 어떻게 생각했는가
- **복잡도**: 시간 O(?) / 공간 O(?)
- **내 풀이 vs 책 풀이**: 무엇이 달랐는가
- **막혔던 점**:
## 4. 헷갈렸던 것 / 다시 볼 것
- [ ] ...
## 5. 한 줄 요약| 형식 | 예시 |
|---|---|
chNN: <내용> |
ch06: 문자열 조작 개념 및 투 포인터 정리 |
PN: <내용> |
P8: 빗물 트래핑 스택 풀이 노트 추가 |
docs: <내용> |
docs: README 진도표 갱신 |
refactor: <내용> |
refactor: ch07 내 풀이 정리 |
git fetch upstream
git merge upstream/main # 또는 git rebase upstream/main
git push origin main책 전체를 한 장으로 정리한 마인드맵. 챕터를 시작할 때마다 지금 배우는 게 전체 어디에 위치하는지 확인합니다.
| 장 | 주제 | 문제 수 | 원본 코드 | 내 노트 | 상태 |
|---|---|---|---|---|---|
| 1장 | 코딩 인터뷰 & 코딩 테스트 | — | — | ch01 |
⬜ |
| 2장 | 자바, 세상에서 가장 유명한 언어 | — | src/ch02 |
ch02 |
⬜ |
| 3장 | 코틀린, 구글이 인정한 공식 언어 | — | src/ch03 |
ch03 |
⬜ |
| 4장 | 자료형 | — | src/ch04 |
ch04 |
✅ |
| 5장 | 빅오 | — | src/ch05 |
ch05 |
⬜ |
| 6장 | 문자열 조작 | 6 | src/ch06 |
ch06 |
🔄 |
| 7장 | 배열 | 6 | src/ch07 |
ch07 |
🔄 |
| 8장 | 연결 리스트 | 7 | src/ch08 |
ch08 |
⬜ |
| 9장 | 스택, 큐 | 6 | src/ch09 |
ch09 |
⬜ |
| 10장 | 데크, 우선순위 큐 | 4 | src/ch10 |
ch10 |
⬜ |
| 11장 | 해시 테이블 | 5 | src/ch11 |
ch11 |
⬜ |
| 12장 | 그래프 | 9 | src/ch12 |
ch12 |
⬜ |
| 13장 | 최단 경로 문제 | 3 | src/ch13 |
ch13 |
⬜ |
| 14장 | 트리 | 13 | src/ch14 |
ch14 |
⬜ |
| 15장 | 힙 | 2 | src/ch15 |
ch15 |
⬜ |
| 16장 | 트라이 | 2 | src/ch16 |
ch16 |
⬜ |
| 17장 | 정렬 | 6 | src/ch17 |
ch17 |
⬜ |
| 18장 | 이진 검색 | 6 | src/ch18 |
ch18 |
⬜ |
| 19장 | 비트 조작 | 5 | src/ch19 |
ch19 |
⬜ |
| 20장 | 슬라이딩 윈도우 | 3 | src/ch20 |
ch20 |
⬜ |
| 21장 | 그리디 알고리즘 | 5 | src/ch21 |
ch21 |
⬜ |
| 22장 | 분할 정복 | 2 | src/ch22 |
ch22 |
⬜ |
| 23장 | 다이나믹 프로그래밍 | 5 | src/ch23 |
ch23 |
⬜ |
| 부록 | 2022년 카카오 공채 만점 가이드 | 7 | src/ch24 |
ch24 |
⬜ |
| 합계 | 102 |
원본 저장소의 문제 목록에 내 노트 열을 추가했습니다. 각 링크는 해당 문제의 회고 섹션으로 바로 이동합니다.
책 본문에서 개념 설명에 쓰인 예제 코드 목록입니다.
- 2장
- 3장
- 4장
- 5장
- 6장
- 7장
- 9장
- 10장
- 11장
- 12장
- 14장
- 15장
- 17장
- 21장
- 23장
이 저장소는 onlybooks/java-algorithm-interview의 포크입니다.
src/, test/, assets/의 예제 코드와 이미지의 저작권은 원저자(박상길)와 출판사(책만)에 있으며, 학습 목적으로만 사용합니다.
notes/ 이하의 정리 내용은 제가 직접 작성한 것입니다.
- 도서 구매: 교보문고 · YES24 · 알라딘
- 파이썬 버전: onlybooks/python-algorithm-interview
