0Pricing
Competitive Programming Academy · 강의

탐욕적 사고방식

가장 좋은 단계를 선택하고 뒤돌아보지 않습니다

탐욕적 사고방식은(는) CoddyKit의 무료 Competitive Programming Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Competitive Programming Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

탐욕 알고리즘이란

탐욕적 알고리즘은 답을 단계별로 만들면서 그 순간 가장 좋아 보이는 선택을 항상 취하고, 나중에 그 선택을 되돌리지 않습니다. ⚡

최선의 단계 선택하기

매 순간 한 가지를 자문하십시오. 어떤 하나의 선택이 현재 상황에서 가장 큰 도움을 줄까요? 그것을 선택한 뒤 다음 결정으로 넘어가십시오.

뒤돌아보지 않기

탐욕 알고리즘은 선택을 확정하고 절대 되돌리지 않습니다. 되돌아가며 탐색하는 방법과 달리 다른 경로를 살펴보지 않기 때문에 매우 빠릅니다.

탐욕 알고리즘이 빠른 이유

단계마다 한 번만 결정하므로 탐욕 알고리즘은 정렬 후 대개 O(n) 또는 O(n log n)에 실행됩니다. 대회에서 가장 큰 장점은 바로 이 속도입니다.

정렬하는 습관

대부분의 탐욕 해법은 항목을 정렬하는 것부터 시작합니다. 순서를 보면 각 단계에서 어떤 요소를 선택해야 하는지 분명해집니다.

items.sort(key=lambda x: x.cost)

탐욕적 선택 속성

탐욕 알고리즘은 현재 상황에서 가장 좋은 선택이 전체적으로 가장 좋은 답의 일부일 때만 작동합니다. 이것이 탐욕적 선택 속성입니다.

항상 옳은 것은 아닙니다

지금 가장 좋아 보이는 단계를 선택해도 전체적으로는 실패할 수 있습니다. 홀수 단위의 동전으로 거스름돈을 만드는 문제는 탐욕 알고리즘이 잘못된 합계를 내는 대표적인 사례입니다.

증명하거나 시험하기

탐욕 알고리즘을 믿기 전에 교환 논증으로 정당성을 설명하거나, 작은 입력에 대해 완전 탐색과 비교하는 스트레스 테스트를 수행하십시오.

교환 논증

교환 증명은 탐욕적 선택을 최적의 답에 넣고 그 결과가 더 나빠지지 않음을 보입니다. 이것이 성립하면 탐욕 알고리즘을 안전하게 사용할 수 있습니다.

작은 탐욕 반복문

거의 모든 탐욕 알고리즘은 다음과 같은 형태입니다. 정렬한 뒤 한 번 훑으면서 규칙에 맞는 것을 선택합니다.

items.sort()
for x in items:
    if fits(x):
        take(x)

탐욕 알고리즘을 사용할 때

선택의 순위를 정하는 명확한 순서가 있고 하나의 규칙이 계속 좋은 결과를 낼 때 탐욕 알고리즘을 시도하십시오. 선택들이 복잡하게 서로 영향을 준다면 DP를 고려하십시오.

간단히 확인하기

탐욕적인 접근이 믿을 만한지 결정하려고 합니다.

복습

탐욕 알고리즘은 대개 먼저 정렬한 뒤 현재 상황에서 최선인 단계를 선택하고 뒤돌아보지 않습니다. 빠르지만 탐욕적 선택이 성립함을 증명할 수 있을 때만 정확합니다. 🚀

자주 묻는 질문

“탐욕적 사고방식” 강의는 무료인가요?

네 — “탐욕적 사고방식” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Competitive Programming Academy 강의 전체를 잠금 해제할 수 있습니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“탐욕적 사고방식”에서 뭘 배우나요?

가장 좋은 단계를 선택하고 뒤돌아보지 않습니다 브라우저에서 직접 실행하는 실습 코드로 Competitive Programming Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Competitive Programming Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Competitive Programming Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“탐욕적 사고방식” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Competitive Programming Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Competitive Programming Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 탐욕적 사고방식
  2. 가장 이른 종료 시간으로 활동 선택하기
  3. 비율을 이용한 분할 배낭
  4. 탐욕법이 실패하는 순간 포착하기
← Competitive Programming Academy(으)로 돌아가기