본문/내용
Ⅰ. 서론
그리디 알고리즘은 문제 해결을 위해 현재 상황에서 가장 최선의 선택을 반복적으로 하는 알고리즘의 기법이다. 이러한 접근 방식은 다양한 문제에 대해 간단하고 빠른 해법을 제공할 수 있지만, 모든 문제에 대해 최적해를 보장하지는 않는다. 그리디 알고리즘은 `현재의 최적 선택이 궁극적으로 전체 문제의 최적 해결책으로 이어진다`라는 가정을 기반으로 한다. 그렇기 때문에 그리디 알고리즘을 적용할 수 있는 문제는 일정한 구조적 성질을 가져야 하며, 이는 보통 최적 부분 구조와 무관성의 성질을 포함한다. 최적 부분 구조란, 문제의 최적해는 그 문제의 부분 문제들의 최적해로부터 구할 수 있는 성질을 뜻한다. 예를 들어, 최단 경로 문제에서 한 경로가 최적이라면 그 경로를 구성하는 각 개별 경로 또한 최적이어야 한다. 무관성의 성질은 문제 선택 간에 서로 영향을 미치지 않아야 한다는 것을 의미한다. 이는 선택한 결과가 나중에 수행할 선택에 영향을 미치지 않아, 독립적으로 최적 선택을 할 수 있음을 나타낸다. 그리디 알고리즘의 대표적인 예시로는 `동전 거스름돈` 문제를 들 수 있다. 이 문제는 주어진 금액을 만들기 위해 최소한의 동…