문제 1: 다이나믹 프로그래밍의 기본 개념 다이나믹 프로그래밍이 적용될 수 있는 문제의 두 가지 핵심 특성을 설명하고, 각각의 특성이 왜 중요한지 간략히 서술하시오.1. 중복되는 하위 문제 (Overlapping Subproblems):•설명: 문제를 해결하는 과정에서 동일한 하위 문제가 여러 번 반복하여 계산됩니다.•중요성: 중복 계산을 효율적으로 처리하기 위해 하위 문제의 결과를 저장(메모이제이션)하고 재사용할 수 있습니다. 이는 전체 문제의 시간 복잡도를 크게 줄여줍니다.2. 최적 부분 구조 (Optimal Substructure):•설명: 문제의 최적 해가 하위 문제들의 최적 해로부터 구성될 수 있습니다.•중요성: 최적 해를 구성하는 과정에서 하위 문제의 최적 해를 활용할 수 있으므로, 전체 문제..