본문으로 건너뛰기 Algorithm 시리즈 전체 목차 | 코딩 테스트 완벽 대비

Algorithm 시리즈 전체 목차 | 코딩 테스트 완벽 대비

Algorithm 시리즈 전체 목차 | 코딩 테스트 완벽 대비

이 글의 핵심

Algorithm 시리즈 전체 목차: 자료구조부터 알고리즘까지 17개 주제로 코딩 테스트 완벽 마스터.

시리즈 소개

알고리즘과 자료구조는 코딩 테스트와 기술 면접의 핵심입니다. 이 시리즈는 기본 자료구조부터 고급 알고리즘까지 체계적으로 학습할 수 있도록 구성했습니다.

백준, 프로그래머스, LeetCode 등 실전 문제 풀이를 중심으로, Python과 C++ 코드로 명확하게 설명합니다. O(n²)를 O(n log n)으로, O(2ⁿ)를 O(n)으로 최적화하는 방법을 배웁니다.


📚 전체 목차

🟢 자료구조 (초급~중급)

#01 배열과 리스트

20분 | 초급 | 튜토리얼

  • 배열 vs 리스트, 동적 배열 (Python list, C++ vector)
  • 인덱스 접근 O(1), 삽입/삭제 O(n)
  • 투 포인터 기초, 부분 배열 문제
  • 핵심: Array, List, Dynamic Array

#02 스택과 큐

18분 | 초급 | 튜토리얼

  • 스택(LIFO), 큐(FIFO) 개념과 구현
  • 괄호 검사, 되돌리기, DFS/BFS 활용
  • Python list vs deque, C++ stack/queue
  • 핵심: Stack, Queue, Deque

#03 해시 테이블

20분 | 중급 | 튜토리얼

  • O(1) 탐색의 비밀, 해시 함수, 충돌 해결
  • Python dict, C++ unordered_map
  • 두 수의 합, 중복 검사, 빈도 계산
  • 핵심: Hash Table, Hash Function, dict

#04 트리

22분 | 중급 | 튜토리얼

  • 이진 트리, BST, 트리 순회 (전위/중위/후위)
  • 재귀적 구조, 계층 표현 (파일 시스템)
  • 트리 높이, 깊이, 균형
  • 핵심: Binary Tree, BST, Tree Traversal

#05 그래프

32분 | 중급 | 튜토리얼

  • 그래프 표현 (인접 리스트, 인접 행렬)
  • 방향/무방향, 가중/비가중 그래프
  • 그래프 순회 기초, 연결 요소
  • 핵심: Graph, Adjacency List, Matrix

🟡 정렬 (초급~중급)

#06 기본 정렬

30분 | 초급 | 튜토리얼

  • 버블, 선택, 삽입 정렬 (O(n²))
  • 안정 정렬 vs 불안정 정렬
  • 정렬 알고리즘 시간복잡도 비교
  • 핵심: Bubble Sort, Selection Sort, Insertion Sort

#07 고급 정렬

32분 | 중급 | 튜토리얼

  • 퀵, 병합, 힙 정렬 (O(n log n))
  • 분할 정복, 피벗 선택, 안정성
  • 계수, 기수 정렬 (O(n))
  • 핵심: Quick Sort, Merge Sort, Heap Sort

#08 정렬 문제

28분 | 중급 | 튜토리얼

  • K번째 수, 정렬 활용 투 포인터
  • 커스텀 정렬, 람다 함수
  • 실전 문제 패턴 (백준, 프로그래머스)
  • 핵심: Sorting Problems, Custom Sort

🔵 탐색과 순회 (중급)

#09 이진 탐색

16분 | 중급 | 튜토리얼

  • O(log n) 탐색, 정렬된 배열 필수
  • Lower Bound, Upper Bound
  • 파라메트릭 서치 (최적화 → 결정 문제)
  • 핵심: Binary Search, Parametric Search

#10 BFS와 DFS

22분 | 중급 | 튜토리얼

  • 너비 우선 탐색 (큐), 깊이 우선 탐색 (스택/재귀)
  • 최단 경로 (BFS), 모든 경로 (DFS)
  • 방문 체크, 레벨 순회
  • 핵심: BFS, DFS, Graph Traversal

#11 백트래킹

26분 | 고급 | 튜토리얼

  • 가능한 모든 경우를 탐색 (완전 탐색)
  • N-Queen, 순열, 조합, 부분집합
  • 가지치기로 최적화
  • 핵심: Backtracking, Pruning, DFS

🔴 동적 프로그래밍 (중급~고급)

#12 DP 기초

25분 | 중급 | 튜토리얼

  • 중복 계산 제거, 메모이제이션
  • Top-Down (재귀+메모), Bottom-Up (반복+테이블)
  • 피보나치, 계단 오르기, 최단 경로
  • 핵심: DP, Memoization, Tabulation

#13 DP 패턴

22분 | 고급 | 튜토리얼

  • 1차원 DP: 누적 합, 최대 부분 배열
  • 2차원 DP: LCS, LIS, 배낭 문제
  • 상태 전이 설계, 점화식 도출
  • 핵심: DP Patterns, LCS, LIS, Knapsack

#14 DP 문제

30분 | 고급 | 튜토리얼

  • 실전 DP 문제 풀이 (백준, 프로그래머스)
  • 상태 정의, 초기값, 순서
  • 공간 최적화 (O(n²) → O(n))
  • 핵심: DP Problems, State Design

🟣 최적화 기법 (중급)

#15 그리디

48분 | 중급 | 튜토리얼

  • 매 순간 최선의 선택 (탐욕 선택)
  • 활동 선택, 동전 교환, 최소 신장 트리
  • 그리디 vs DP, 정당성 증명
  • 핵심: Greedy, 탐욕 선택, 교환 논법

#16 투 포인터

22분 | 중급 | 튜토리얼

  • 두 수의 합, 부분 배열 합
  • O(n²) → O(n) 최적화
  • 정렬 + 투 포인터 패턴
  • 핵심: Two Pointers, O(n) Optimization

#17 슬라이딩 윈도우

42분 | 중급 | 튜토리얼

  • 고정/가변 윈도우, 연속 부분 배열
  • 최대/최소 구간 합, 조건 만족 최소/최대 길이
  • 모노토닉 덱, 상각 분석
  • 핵심: Sliding Window, Monotonic Deque

🎯 학습 경로

1️⃣ 코딩 테스트 입문 (2주 코스)

#01 배열 → #02 스택/큐 → #03 해시테이블 → #06 기본정렬 → #09 이진탐색

목표: 기본 자료구조와 정렬/탐색 이해
난이도: ⭐⭐☆☆☆
예상 문제: 백준 Bronze~Silver

2️⃣ 중급 문제 해결 (4주 코스)

#04 트리 → #05 그래프 → #10 BFS/DFS → #12 DP기초 → #16 투포인터 → #17 슬라이딩윈도우

목표: 트리/그래프 순회, DP 기초
난이도: ⭐⭐⭐☆☆
예상 문제: 백준 Silver~Gold, 프로그래머스 Lv.2

3️⃣ 고급 알고리즘 (6주 코스)

#07 고급정렬 → #11 백트래킹 → #13 DP패턴 → #14 DP문제 → #15 그리디

목표: 복잡한 DP/그리디/백트래킹 마스터
난이도: ⭐⭐⭐⭐☆
예상 문제: 백준 Gold~Platinum, 프로그래머스 Lv.3

4️⃣ 코딩 테스트 집중 (3주 특훈)

#01 배열 → #03 해시테이블 → #10 BFS/DFS → #12 DP기초 → #15 그리디 → #16 투포인터

목표: 출제 빈도 높은 주제 집중
난이도: ⭐⭐⭐☆☆
적용: 카카오, 네이버, 삼성 SW 역량 테스트


💡 시리즈 특징

✅ 실전 중심

  • 백준, 프로그래머스, LeetCode 문제 기반
  • Python과 C++ 코드 제공
  • 시간복잡도 분석과 최적화

✅ 단계별 학습

  • 초급 (자료구조) → 중급 (알고리즘) → 고급 (최적화)
  • 각 주제마다 기초부터 응용까지
  • 코딩 테스트 난이도별 분류

✅ 패턴 중심

  • 문제 유형별 해결 패턴 정리
  • 투 포인터, 슬라이딩 윈도우, DP 패턴
  • 실전에서 바로 적용 가능

✅ 시간복잡도 최적화

  • O(n²) → O(n log n) (정렬)
  • O(n²) → O(n) (투 포인터, 슬라이딩 윈도우)
  • O(2ⁿ) → O(n²) (DP)

🔗 관련 시리즈

  • Python 시리즈 - 파이썬 기초, 자료형, 함수
  • C++ 시리즈 - C++ STL, 알고리즘 구현
  • 코딩 테스트 전략 - 면접 대비

❓ 자주 묻는 질문

Q1. 어떤 순서로 공부하나요?

A: 자료구조(#01~#05) → 정렬/탐색(#06~#09) → BFS/DFS(#10~#11) → DP(#12~#14) → 최적화(#15~#17) 순서를 추천합니다.

Q2. Python vs C++ 어떤 걸로 풀죠?

A: Python이 코드가 짧고 빠르게 구현 가능합니다. 하지만 시간 제한이 빡빡한 문제는 C++이 유리합니다.

Q3. 코딩 테스트는 얼마나 준비하나요?

A: 초보자 23개월, 중급자 12개월, 경력자 2~4주 정도 집중적으로 준비하면 충분합니다.

Q4. 백준 vs 프로그래머스 뭐가 좋나요?

A: 백준은 문제가 많고 난이도 다양, 프로그래머스는 실전 기업 테스트와 유사합니다. 둘 다 풀어보세요.

Q5. DP가 너무 어려워요

A: DP는 패턴입니다. #12 기초부터 시작해서 #13 패턴을 익히고, #14 문제로 반복 연습하면 익숙해집니다.


📖 추천 문제 사이트

국내

해외

학습 자료


시작하기: 배열과 리스트 (#01)에서 기초부터 시작하세요!