알고리즘 자가 학습 계획
사용자가 제공한 주제를 바탕으로 알고리즘 학습 계획을 세운다.
8주에 걸쳐 기본부터 고급까지 다루고, 각 주마다 문제를 풀어가며 실력을 쌓는다.
예를 들어 첫 주에는 시간 복잡도와 Big O를 이해하고 연습하고,
둘째 주에는 정렬과 기초적인 DP 문제를 풀면서 연습한다.
고급 기법(예: DP 스트림 활용, 그래프 알고리즘, TSP 등)을 일주일에 하나씩 다루며,
Week 8에 프로젝트를 통해 학습을 마무리한다.
알고리즘 스터디 — 필수 개념 보고서
reduce, collect 로 DP 표 채우기nCk = n-1Ck + n-1Ck-1visited[] 관리 전략timeit, Java JMH 사용법parallelStream() 주의점(스레딩 오버헤드)활용 팁
- 절마다 핵심 공식/패턴을 A5 종이 한 장 요약 → 암기 카드화
- Git 레포
README에 위 개념 링크 & 예제 코드 첨부 → 포트폴리오로 바로 사용 가능
(하루 평균 1 ~ 1.5 시간 학습 기준, 주말은 복습·정리 시간으로 확보)
| 주차 | 핵심 테마 & 목표 | 필수 개념·자료 | 실전 문제 (기본 ➜ 심화) | 실전 미션 |
|---|---|---|---|---|
| 1주 | 알고리즘 맛보기 & Big-O “코드가 얼마나 빨라야 하는가?” 감 잡기 | - 빅-O 표기법, 점근적 분석 - 고대/러시아 곱셈법으로 연산 횟수 비교 실습 | - BOJ 2720 세탁소 사장… (Greedy, 난도 ★) - 직접 구현: 고대‧러시아 곱셈 vs 표준 곱셈 | ① 두 곱셈 알고리즘을 Python/Java 둘 다 작성 ② 입력 n에 대한 연산 횟수 로그 남기고 그래프化 |
| 2주 | 정렬 총정리 + Radix Sort 실습 | - 내부/외부 정렬 흐름도 - 비교 기반 vs 비-비교 기반 - Stable vs Unstable | - BOJ 2750 수 정렬하기 (선택·버블) - BOJ 10989 수 정렬 3 (Counting) - 직접 구현: Radix Sort | 각 정렬을 Git 레포지토리로 관리; README에 장·단점을 표로 정리 |
| 3주 | 기초 DP ① – 1차원 점화식 | - 점화식 세우기, Memoization vs Tabulation - 2 × N 타일링 패밀리 | - BOJ 11726 2×N 타일링 - BOJ 2579 계단 오르기 | ① 두 문제를 배열·HashMap·Stream API(Java) 3가지 버전으로 풀이 ② 실행 시간 비교 |
| 4주 | 기초 DP ② – 조합 & 구간 | - 이항계수, 파스칼 삼각형 - 구간 DP 아이디어 | - BOJ 1010 다리 놓기 - BOJ 2302 극장 좌석 | 극장 좌석 문제를 “D-Day 좌석 배치 서비스” 콘셉트로 짧은 블로그 포스팅 |
| 5주 | 그래프 ① – BFS/DFS & 최단거리 | - 그래프 표현법, BFS vs DFS - 레벨 탐색 | - Programmers Lv 3 가장 먼 노드 - BOJ 2606 바이러스 | BFS 큐 동작을 그림으로 그려 Git Wiki에 업로드 |
| 6주 | 그래프 ② – 최소 비용 & Bitmask DP | - 최소 신장 트리 스케치 - TSP Bitmask DP 패턴 | - BOJ 2098 외판원 순회 (Bitmask DP) - Programmers 배달 (다익스트라) | 외판원 순회 풀이에서 “State Compression” 설명 노트 작성 |
| 7주 | 복습 & 속도 개선 챌린지 | - 프로파일링 툴(JMH, timeit) - 캐싱, 스트림 병렬화 | 과거 제출 코드 재채점: 시간·메모리 Top 10 % 노리기 | 이전 주차 중 3문제 선택 ➜ Stream ➜ 반복문 ➜ 병렬 스트림 성능 비교 리포트 |
| 8주 | 모의 코딩 테스트 & 회고 | - 테스트 전략, 디버깅 패턴 - GitHub Actions로 자동 채점 파이프라인 | - Programmers/BOJ 랜덤 5문제 (난도 혼합) | ① 2 시간 모의 시험, 회고 로그 작성 ② 레포지토리 README ‘스터디 회고’ 섹션 완성 |
이론 20 분
문제 풀이 40 분
리뷰 10 분
Tip : GitHub repo root에
/docs폴더를 만들어 주간 회고, 느낀점, 성능 비교 그래프 등을 Markdown으로 축적하면 취업/포트폴리오에 그대로 활용 가능합니다.
온라인 저지 : Baekjoon · Programmers · LeetCode (주차별 3:2:1 비율)
서적 :
IDE 플러그인 : GitHub Copilot → 단, 최종 코드는 스스로 재작성하며 이해 체크
프로파일링 : Python timeit, Java JMH
스트림 학습 : Baeldung “Java Streams Cookbook” → 3·7주 연계
혼자 공부하더라도 “문서 = 동료” 라는 마음으로 기록을 남기면, 복습 효율은 물론 미래의 나에게 최고의 선물이 됩니다. 화이팅! 💪