반응형

동적 계획법(Dynamic Programming)

  • 전체 문제를 작은 문제로 단순화한 다음 점화식으로 만들어 재귀적인 구조를 활용하여 큰 문제를 해결하는 방식이다.
    • 부분 문제를 정의한다.
    • 재귀적인 구조를 활용할 수 있는 점화식 만든다.
    • 작은 문제를 해결한 방법으로 전체 문제를 해결한다.
  • 메모이제이션(Memoization) 기법 사용
    • 프로그램 실행 시 이전에 계산한 값을 저장하고, 필요할 경우 계산과정 없이 저장된 값을 이용함으로써 전체 실행 속도를 빠르게 하는 기술이다.
  • EX. 피보나치 수열

 

분할 정복(Divide and Conquer)

  • 문제를 나눌 수 없을 때까지 분할하고 각각을 풀고 다시 조합함으로써 문제를 해결하는 방식이다.
  • 하향식 접근법을 이용한다.
  • 문제가 나누어질 때, 각각의 문제는 중복되지 않는다. => 메모이제이션을 사용하지 않는다.
반응형