Algorithm/Algorithm 문제 풀이
[BAE/<JOON> 문제풀이] 1509. 팰린드롬 분할
www.acmicpc.net/problem/1509 1509번: 팰린드롬 분할 세준이는 어떤 문자열을 팰린드롬으로 분할하려고 한다. 예를 들어, ABACABA를 팰린드롬으로 분할하면, {A, B, A, C, A, B, A}, {A, BACAB, A}, {ABA, C, ABA}, {ABACABA}등이 있다. 분할의 개수의 최솟값을 출력하 www.acmicpc.net Manacher's 알고리즘을 사용해 문자열 내부에 있는 모든 팰린드롬의 길이를 구할 수 있다. 최소 분할 수를 구하는 점화식은 다음과 같다. 현재 위치 팰린드롬 길이 k에 대해서 dp[i] = min(dp[i - 1] + 1, dp[i]) -> 현재 위치의 팰린드롬을 사용하는 것보다 사용하지 않는 것이 더 짧은 경우 for(1 ~ k = j)..
2021. 4. 17. 13:34