안동민 개발노트 아이콘

안동민 개발노트

나 혼자 알고리즘과 자료구조

알고리즘과 자료구조의 핵심 개념을 문제 해결 관점에서 체계적으로 다루는 교재입니다.

처음 공부할 때는 다음에 뭘 해야 하는지가 가장 어렵습니다. 이 페이지는 시작 지점, 진행 순서, 복귀 경로만 빠르게 확인할 수 있게 정리한 안내입니다. 코드 암기보다 문제를 읽고 적절한 자료구조를 고르는 판단을 만드는 데 초점을 맞추세요.

모든 예제는 C++, Java, Python, Rust 4언어를 함께 제공합니다. 주력 언어로 한 번 풀고, 같은 로직을 나머지 언어와 대조해 사고 순서를 고정하세요.

시작 경로

  1. ch1-1에서 개념 -> 손으로 따라가기 -> 예제 1 순서로 한 바퀴 읽습니다.
  2. 같은 흐름으로 ch1-2 -> ch1-3을 이어 보고 체크리스트에 직접 답을 적습니다.
  3. ch2-1 -> ch3-1까지 진행하며 배열/리스트/스택/큐 용어를 한 장에 정리합니다.
  4. 기초가 잡히면 ch4~ch6, 다음은 ch7~ch9, 마지막으로 ch10~ch12 순서로 확장합니다.

막히면 복귀 경로

  1. 시간 초과가 반복되면 ch1-2 -> ch4-2 -> ch6-2를 다시 읽고 복잡도 계산부터 맞춥니다.
  2. 그래프 문제에서 멈추면 ch7-1 -> ch7-2 -> ch8-1로 돌아가 모델링 전제를 점검합니다.
  3. DP/그리디 선택이 흔들릴 때는 ch11-1 -> ch12-1 -> ch10-3 순서로 판단 관점을 다시 세웁니다.
  4. 같은 실수가 계속되면 해당 장의 반례/실수 포인트체크리스트만 먼저 재검토합니다.

막히는 증상을 먼저 분류하면 무작정 처음부터 다시 읽지 않아도 됩니다. 시간 초과, 그래프 모델링, DP/그리디 판단 혼동, 반복 실수는 각각 되돌아갈 장을 정해 두고 복습합니다.

하루 학습 루프

  1. 한 장에서 개념 -> 손으로 따라가기 -> 예제 1까지만 먼저 완료합니다.
  2. 예제 1개를 주력 언어로 실행한 뒤 나머지 3언어의 변수명/로직 순서를 비교합니다.
  3. 마무리 전에 반례 2개를 직접 적고 체크리스트를 소리 내어 설명해 봅니다.

하루 루프는 많이 읽는 것보다 한 문제를 끝까지 닫는 습관을 만드는 데 의미가 있습니다. 문제 풀이를 시작하기 전과 제출 직전에는 입력 크기, 불변식, 반례, 복잡도를 같은 루틴으로 확인합니다.

문제 유형별 빠른 진입 경로

막히는 증상에 따라 시작 장과 복귀 장을 빠르게 결정할 수 있도록, 판단 질문 기반으로 학습 경로를 압축한 프레임입니다.

알고리즘 문제는 먼저 입력 크기, 필요한 순서 보존, 반복되는 상태, 연결 관계를 분리해서 읽으면 선택지가 빠르게 줄어듭니다. 문제 문장에서 자료구조와 알고리즘 후보를 좁히는 판단 흐름을 반복해서 훈련합니다.

전체 목차

목차를 따라갈 때는 하루에 많은 장을 훑기보다, 한 문제를 끝까지 설명 가능한 상태로 만드는 루프가 더 중요합니다. 구현, 복잡도, 반례, 언어 비교를 짧게 반복하면 문제 해결 감각이 안정됩니다.

트랙을 마칠 때는 모든 장의 제목을 기억하는 것보다, 문제 하나를 읽고 선택 이유와 반례를 말할 수 있는지 확인하는 편이 더 실전적입니다.

알고리즘 트랙은 문제를 읽고 선택 근거, 복잡도, 반례를 말할 수 있는 루프를 기준으로 마무리합니다.