1. 동적 프로그래밍 동적 프로그래밍(이하 동프) 이라는 말이 직관적이지는 않다. 동프가 도대체 뭘까? 영어 설명을 살펴보자. WTF is Dynamic programming A method for solving complex problem by breaking it down into a collection of simpler subproblems , solving each of those subproblems just once, and storing their solutions. So it is commonly involved in recursion. 복잡한 문제를 간단한 단위로 나누어서 단위별로 문제를 해결하는것을 뜻한다. 주로 나뉜 조각들중에 같은 조각들이 많아서 하위 문제의 답을 저장한다음에 나중에 같은 하위문제가 나왔을때 다시 계산하지 않고 저장한것을 그대로 사용한다. 주로 하위문제가 겹치는 경우와 그 하위문제의 해답이 합쳐져서 최종 답안이 나