팰린드롬 인코딩
시간 제한2초메모리 제한128 MB
이진 문자열에서 길이가 짝수인 회문 부분 문자열의 뒤쪽 절반을 반복해서 지워 얻을 수 있는 최소 길이를 구하는 문제입니다.
문제
준규는 이진 문자열을 짧게 만드는 인코딩 규칙을 만들었다.
이 인코딩은 0과 1로만 이루어진 문자열에 적용한다. 한 번의 연산은 다음과 같다.
- 현재 문자열에서 길이가 짝수인 팰린드롬 부분 문자열을 하나 고른다. 팰린드롬은 앞에서 읽어도 뒤에서 읽어도 같은 문자열이다.
- 고른 부분 문자열의 뒤쪽 절반을 지운다. 예를 들어
0110을 고르면 뒤쪽 절반인10을 지우고01만 남긴다. - 더 이상 고를 수 있는 짝수 길이 팰린드롬 부분 문자열이 없을 때까지 원하는 순서로 연산을 반복할 수 있다.
문자열 S가 주어졌을 때, 이 인코딩으로 만들 수 있는 결과 중 가장 짧은 길이를 구하라.
입력
첫째 줄에 0과 1로만 이루어진 문자열 S가 주어진다.
1 <= |S| < 50
출력
첫째 줄에 인코딩으로 만들 수 있는 결과의 최소 길이를 출력한다.
힌트
첫 번째 공개 테스트에서는 뒤쪽의 1001을 고르면 문자열이 01110이 된다. 이어서 11을 고르면 0110이 되고, 마지막으로 0110을 고르면 01만 남아 길이는 2가 된다.