BOJ 1509 - 팰린드롬 분할

Joonas' Note

BOJ 1509 - 팰린드롬 분할 본문

알고리즘/문제 풀이

BOJ 1509 - 팰린드롬 분할

2018. 7. 18. 17:07 joonas 읽는데 1분
  • 문제
  • 코드

링크: https://www.acmicpc.net/problem/1509

문제

dp[i] = i번째 위치에서 가능한 팰린드롬 분할의 최소 개수

isPaline[i][j] = i j 가 팰린드롬인지 여부


예제에도 끼워져있지만 AABDBADD 와 같은 경우의 처리때문에 여러 경우를 탐색해야한다. 이것을 분할하는 경우는 아래와 같다.

A - A - B - D - B - A - D - D
A - A - B - D - B - A - DD
A - A - BDB - A - D - D
A - A - BDB - A - DD
A - ABDBA - D - D
A - ABDBA - DD
AA - B - D - B - A - D - D
AA - B - D - B - A - DD
AA - BDB - A - D - D
AA - BDB - A - DD

팰린드롬으로 최대한 묶은 후, 남은 문자열에 대해서 이 작업을 반복한다.

코드


'알고리즘 > 문제 풀이' 카테고리의 다른 글

BOJ 16235 - 나무 재테크  (0) 2018.10.30
BOJ 11058 - 크리보드  (0) 2018.09.05
BOJ 3079 - 입국심사  (0) 2018.05.25
BOJ 1766 - 문제집  (2) 2018.05.22
BOJ 13701 - 중복 제거  (0) 2018.05.18
Comments