다이나믹 프로그래밍은 큰 문제를 작은 문제로 쪼개어 해결하는 방법을 말합니다. 이때, 작은 문제를 풀어나가는 방법에는 Memoization과 Tabulation 방식이 있습니다. Memoization 방식은 큰 문제를 풀기 위해 필요한 값들을 저장해 두었다가 다시 활용하는 방식으로, Top-down 방식이라고도 부릅니다. Memoization 방식에서는 한 번 계산된 값을 메모이제이션(기록)하여 중복 계산을 방지합니다. 이를 통해 작은 문제를 해결하고, 그 결과를 저장해 놓는 과정에서 dp 배열이 생성됩니다. Tabulation 방식은 작은 문제부터 큰 문제까지 순차적으로 풀어나가는 방식으로, Bottom-up 방식이라고도 부릅니다. Tabulation 방식에서는 작은 문제의 해결에 필요한 값을 이전 계..
C