bootcamp/Java

1211 동적프로그래밍

깨돌 2023. 12. 22. 20:40
동적 프로그래밍 복잡한 문제를 여러 개의 간단한 문제로 분리
부분의 문제들을 해결, 최종적으로 복잡한 문제의 답을 구함
동적 프로그래밍 구현 큰 문제를 작은 문제로 나눌 수 있어야 한다.
  작은 문제들이 반복돼 나타나고 사용되며
이 작은 문제들의 결과값은 항상 같아야 한다.
  모든 작은 문제들은 한 번만 계산해 DP 테이블에 저장하며 
추후 재사용할 때는 이 DP 테이블을 이용한다.
이를 메모이제이션memoization 기법이라고 한다.
  동적 계획법은 톱-다운 방식top-down과 
바텀-업bottom-up 방식으로 구현할 수 있다.