원리 · intermediate

그리디: 탐욕 선택과 반례

당장 최선이 전역 최적이 되는 조건과, 반례로 검증하는 습관.

배우기 · 알고리즘 원리 · 18분 · 11/14 · 그리디

이 트랙 목차 (14)
  1. 1. 시간·공간 복잡도 (Big-O) 제대로 읽기
  2. 2. 투포인터: 양끝·같은방향
  3. 3. 해시맵·해시셋: 빠른 조회
  4. 4. 스택·큐: LIFO와 FIFO
  5. 5. 재귀와 이분 탐색
  6. 6. 슬라이딩 윈도우
  7. 7. 동적 계획법 입문 (DP)
  8. 8. 누적합·차분 배열
  9. 9. 그래프 탐색: BFS·DFS
  10. 10. 정렬을 언제 쓰나: 전처리·이분·그리디
  11. 11. 그리디: 탐욕 선택과 반례
  12. 12. 행렬·격자: 인덱싱과 방문
  13. 13. 비트 연산 기초: AND OR XOR · 플래그
  14. 14. 우선순위 큐·힙 감각

그리디란

매 순간 국소적으로 최선을 고르고, 되돌리지 않는 전략입니다.
항상 되지 않습니다. 증명 또는 강한 관례(문제 유형)가 있을 때 씁니다.

전형 패턴

유형선택 기준 예
구간 스케줄끝나는 시각이 빠른 것부터
거스름돈(특정 동전)큰 단위부터 (단, 동전 세트가 맞을 때)
파티션/묶기정렬 후 양끝 매칭
점프 게임현재 도달 가능 최댓값 갱신

반례 습관

그리디를 떠올리면 작은 반례를 먼저 만드세요.

반례가 바로 나오면 DP·완전탐색·다른 정렬 키를 검토합니다.

DP와 경계

“모든 부분 문제의 최적해를 표로 쌓아야” 하면 DP입니다.
“한 번 스캔·한 번 정렬로 끝”이면 그리디 후보입니다.

복잡도

정렬이 들어가면 O(n log n), 아니면 O(n)인 경우가 많습니다.

연습

점프/구간/거스름 유형 중 쉬운 문제 하나에서,
1) 탐욕 규칙 한 줄 2) 반례 시도 3) 코드 순서로 적어 보세요.

체크리스트

  1. 선택 규칙을 한 문장으로 말할 수 있는가?
  2. 작은 반례로 Negate 시도했는가?
  3. 정렬이 필요한가? 어떤 키인가?
  4. 증명/유형이 익숙한가, 아니면 DP 후보인가?

한 줄

> 그리디는 빠르지만, 반례에 지면 바로 철수한다.

예: 점프 게임 감각

각 칸에서 “여기서 더 멀리 갈 수 있는가”만 갱신합니다.
뒤로 돌아가 다른 칸을 다시 고르지 않습니다. 그것이 그리디입니다.

반례가 떠오르지 않고, 도달 가능 범위가 단조 증가하면 이 유형일 가능성이 큽니다.

관련

그리디가 실패하면 DP 입문 레슨으로 넘어가세요.

더 깊게

읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.

관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.

막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.

관련 짧은 원리

관련 문제