DP, Greedy, Divide and Conquer

Dophi·2023년 3월 7일
0

CS정리(알고리즘)

목록 보기
1/3

소개글

면접 대비겸 여러 블로그들을 참고하면서 정리해본 CS 지식들을 포스팅하고 있습니다.
만약 틀린 내용이 있다면 피드백은 언제나 환영합니다.
제 나름대로 요약한 내용이기 때문에 자세한 내용은 제일 아래쪽 참고 사이트에서 확인하면 좋을 것 같습니다!
말투는 편한 말투로 작성하니 양해 부탁드립니다.

DP, Greedy, Divide and Conquer

Dynamic Programming (동적 계획법)

  • 복잡한 문제를 여러 개의 간단한 하위 문제로 나누어 푸는 방법 (하위 문제 중복O)
  • 같은 하위 문제를 가지고 있는 경우 - Memorization 이용
  • bottom-up 접근법
  • ex) 피보나치 수열

Greedy (탐욕법)

  • 각 단계마다 지금 당장에 가장 좋은 방법만을 선택해서 해결하는 방법
  • 비교적 훨씬 빠름
  • 탐욕법을 사용해서 최적해를 구할 수 있는 경우가 있고 아닌 경우가 있음
  • 최적해 대신 근사해를 찾아서 해결하기도 함
  • ex) 크루스칼 알고리즘

Divide and Conquer (분할 정복)

  • Divide - 큰 문제를 여러 작은 문제로 쪼갬 (하위 문제 중복X)
  • Conquer - 작은 문제들을 해결함
  • Merge - 해결한 작은 문제들을 합침 (이 단계가 필수적이지는 않음)
  • top-down 접근법
  • ex) 이분탐색, 퀵소트

참고 사이트

https://velog.io/@zz1996zz/동적-계획법Dynamic-Programming과-분할정복Divide-and-Conquer

profile
개발을 하며 경험한 것들을 이것저것 작성해보고 있습니다!

0개의 댓글