*O(n^2)로 해결 O(n)으로 하는 방법은 없을까..?
*dp를 이용해서 i는 시작점 / j는 도착점으로 간주해서 팰린드롬이면 dp[i][j] = true 로 저장한다.
*자기 자신은 항상 팰린드롬
aa, bb -> 길이가 2인 팰린드롬
*for (len => 비교할 길이)
for (시작점-> n-len)
int j = 도착점
if (s[i] == s[j] && dp[i+1][j-1] : 범위를 좁혀가면서 팰린드롬인지 확인)
dp[i][j] = true;
answer의 최대값을 비교한다.
'Programmers > 프로그래머스' 카테고리의 다른 글
[Programmers] 땅따먹기 (0) | 2020.04.04 |
---|---|
[Programmers] 문자열 압축 (0) | 2020.04.04 |
[Programmers] N-Queen (0) | 2020.04.03 |
[Programmers] 방문 길이 (0) | 2020.04.03 |
[Programmers] 종이접기 (0) | 2020.04.03 |