[이코테] 그리디 알고리즘

한지훈·2023년 1월 5일
0

알고리즘

목록 보기
1/5

그리디(Greedy) 알고리즘이란?

  • 그리디 알고리즘은 현재 상홍에서 지금 당장 좋은 것만 고르는 방법을 뜻한다.
  • 매 순간 좋아보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해 전혀 고려하지 않는다.

그리디 알고리즘은 언제 필요한가?

보통 정렬, 최단 경로 등의 알고리즘 문제같은 걍우는 이미 그 알고리즘의 사용 방법을 알고 있어야 해결이 가능하다. 하지만 그리디 알고리즘같은 경우는 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제일 때 유용하다.
그리디 알고리즘같은 경우는 문제의 유형이 굉장히 다양하다.

그리디 알고리즘에 관한 거스름돈 문제

그리디 알고리즘의 정당성

모든 알고리즘 문제에 그리디 알고리즘을 적용할 수 있는 것은 아니다. 대부분의 문제는 그리디 알고리즘을 이용했을 때 최적의 해를 찾을 수 없을 가능성이 높다. 하지만 위의 거스름돈 문제에서 가장 큰 화폐 단위부터 돈을 거슬러주는 것과 같이, 그리디적으로 문제에 접근했을 때 정확한 답을 찾을 수 있을 때에는 매우 효과적이고 직관적이다.

하지만 그 해법에 대한 정당성을 검토해야 한다.

어떤 코딩 문제를 만났을 때, 바로 해당 문제에 대한 유형을 파악하기 어렵다면 그리디 알고리즘 문제가 아닌지 의심을 해보자!
만약 그리디 알고리즘으로 풀 수 없다면, 다이나믹 프로그래밍이나 그래프 알고리즘 등으로 문제를 해결할 수 있는지도 고민을 해야한다.

profile
노력하는 개발자

0개의 댓글