짹뚜 스튜디오

그리디(탐욕) 알고리즘 본문

개발 공부/알고리즘

그리디(탐욕) 알고리즘

짹뚜 2021. 11. 30. 20:44

그리디 (탐욕) 알고리즘은 현재 상황에서 최적의 해를 찾는 알고리즘이다. 알고리즘 구현은 단순하지만 단점도 존재한다.

A 위치에서 시작해서 해당 그래프의 최고점을 찾는다고 했을 때, A에서 최적의 선택은 C 방향으로 올라가는 것이다. 그러나 그래프 전체를 봤을 때는 B가 최고점이다. 이렇듯 그리디 알고리즘은 항상 최적의 결과를 찾아내지는 못하지만 최적에 근사한 결과를 찾아낼 수 있다.

 

과목 선택 문제에서 그리디 알고리즘을 사용할 수 있다. 예를 들어 한 강의실에서 최대한 많은 수업을 진행할 수 있는 경우를 찾아야 한다고 하자. 수업 시작 시간과 종료 시간이 주어줬을 때 다음과 같은 순서로 문제를 해결할 수 있다.

 

  1. 수업이 가장 빨리 끝나는 과목을 찾는다.
  2. 해당 과목이 끝난 후에 다음으로 가장 빨리 끝나는 과목을 찾는다.

위 방법을 반복했을 때 최적의 값을 찾을 수 있다.

'개발 공부 > 알고리즘' 카테고리의 다른 글

유클리드 호제법  (0) 2021.12.08
이진 탐색 (Binary Search)  (0) 2021.12.06
트리 순회 알고리즘  (0) 2021.11.28
그래프 탐색 알고리즘: DFS, BFS  (0) 2021.11.25
자료구조: 그래프(Graph)  (0) 2021.11.24
Comments