
using System;
public class Solution
{
public int solution(string s)
{
// 가장 긴 팰린드롬 = 중심 확장 방식
// 문자열 길이
int n = s.Length;
// 최대 길이
int maxLength = 0;
for(int center = 0; center < n; center++)
{
// 홀수 길이
maxLength = Math.Max(maxLength,ExpandFromCenter(s,center,center));
// 짝수 길이
if(center + 1 < n)
maxLength = Math.Max(maxLength,ExpandFromCenter(s,center,center+1));
}
return maxLength;
}
public int ExpandFromCenter(string s, int left, int right)
{
while(left >= 0 && right < s.Length && s[left] == s[right])
{
left--;
right++;
}
return right - left - 1;
}
}
문제의 의도에 따라 사용 방식을 맞춰야 할 것 같습니다. 가장 긴 팰린드롬을 찾는 문제는 중심 확장 방식으로 팰린드롬의 여부를 저장하는 문제는 DP 방식으로