<접근 방법>
LCS
문자열 S와 문자열 S를 뒤집은 reverse_S을 대상으로
DP를 기반으로 한 LCS 최장 공통 부분수열(Longest Common Subsequence) 알고리즘을 사용하여
최장 공통 부분의 길이(n)를 구하고
s.length() - n을 반환
<자세한 설명 링크>
<풀이 코드>
class Solution {
// 시간 복잡도 O(n^2) 공간 복잡도 O(n^2)
public int minInsertions(String s) {
int n = s.length();
int[][] dp = new int[n+1][n+1];
// LCS ALG
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(s.charAt(i)==s.charAt(n-1-j))
dp[i+1][j+1] = dp[i][j]+1;
else
dp[i+1][j+1] = Math.max(dp[i+1][j],dp[i][j+1]);
}
}
return n-dp[n][n];
}
}