diff --git a/_munhyeong/1695.cpp b/_munhyeong/1695.cpp new file mode 100644 index 00000000..ca6cb042 --- /dev/null +++ b/_munhyeong/1695.cpp @@ -0,0 +1,29 @@ +#include +#include +#include + +using namespace std; + +int recursive(vector& arr, vector>& dp, int s, int e) { + if (s >= e) return 0; + if (dp[s][e]) return dp[s][e]; + + if (arr[s] == arr[e]) + return recursive(arr, dp, s + 1, e - 1); + + return dp[s][e] = min(recursive(arr, dp, s + 1, e) + 1, recursive(arr, dp, s, e - 1) + 1); +} + +int main() { + int N; + cin >> N; + + vector arr(N); + for (auto& e : arr) + cin >> e; + + vector> dp(N, vector(N)); + cout << recursive(arr, dp, 0, N - 1); + + return 0; +}