Java 코딩테스트 직전 복습 노트
Summary
Java 17 기준으로 코딩테스트 직전 복습, 유형 판별, 템플릿 백지 복원을 빠르게 하기 위한 문서 집합이다.
원본 zip은 수정하지 않고, 이 폴더에 수정본을 새로 작성했다.
추천 복습 순서
| 순서 | 볼 파일 | 목적 |
|---|---|---|
| 1 | 00_메타/00. 복습 우선순위.md | 오늘 무엇을 볼지 결정 |
| 2 | 00_메타/01. 문제 신호-알고리즘 매핑.md | 문제 표현 → 알고리즘 후보 연결 |
| 3 | 00_메타/03. 유형별 엣지케이스.md | 제출 직전 체크 |
| 4 | 문법/A_필수/Java 빠른 입출력.md | 입력 파싱 실수 방지 |
| 5 | 문법/A_필수/ArrayDeque.md | 큐/스택/덱 방향 실수 방지 |
| 6 | A급 알고리즘 문서 | 템플릿 백지 복원 |
| 7 | 00_메타/02. 오답-약점 로그.md | 틀린 원인 누적 |
폴더 설명
| 폴더 | 역할 |
|---|---|
00_메타 | 복습 우선순위, 유형 판별표, 엣지케이스, 오답 로그, 변경 로그, 병합 후보 |
알고리즘 | 문제 신호, 핵심 아이디어, 복잡도, Java 템플릿 중심 |
문법/A_필수 | 입출력, 배열, 문자열, Collection, Map/Set, ArrayDeque 등 매번 쓰는 Java 문법 |
문법/B_가끔 | Stream, BigInteger, 정규표현식처럼 조건이 맞을 때 쓰는 문법 |
문법/C_검색용 | 날짜처럼 가끔 필요하지만 외울 필요는 낮은 API |
수학 | GCD/LCM, 소수, 약수, 진법 변환 등 짧은 수학 템플릿 |
문제 풀이 루틴
1. 제약조건을 보고 가능한 시간복잡도를 먼저 정한다.
2. 문제 표현을 00_메타/01 매핑표에 대입한다.
3. 후보 알고리즘 문서의 “문제 신호”와 “자주 하는 실수”를 본다.
4. 코드를 보기 전에 “백지 복원 질문”에 답한다.
5. 템플릿을 손으로 복원하고, 입력/출력/자료형을 문제에 맞게 바꾼다.
6. 제출 직전 00_메타/03 엣지케이스를 체크한다.
7. 틀리면 00_메타/02 오답-약점 로그에 원인을 한 줄로 남긴다.이 문서 집합의 Java 기준
- Java 17 기준
- 기본 입력: BufferedReader + StringTokenizer
- 대량 출력: StringBuilder
- 큐: Queue<T> q = new ArrayDeque<>() + offer/poll/peek
- 스택: Deque<T> st = new ArrayDeque<>() + push/pop/peek
- 덱 직접 조작: Deque<T> dq = new ArrayDeque<>() + offerFirst/offerLast/pollFirst/pollLast
- Stack 클래스와 LinkedList 큐는 특별한 이유가 없으면 쓰지 않는다.바로 외울 핵심 문서
문법/A_필수/ArrayDeque.md
문법/A_필수/Java 빠른 입출력.md
알고리즘/00. 시간, 공간 복잡도.md
알고리즘/03. BFS-DFS.md
알고리즘/04. 이분탐색-매개변수탐색.md
알고리즘/05. 투포인터-누적합.md
알고리즘/06. DP.md
알고리즘/07. 그래프-최단경로.md
알고리즘/16. 자료구조-Stack-Queue-Deque.md자세한 변경 내역은 00_메타/05. 변경 로그.md를 본다.