아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

종이 접기

시간 제한1초메모리 제한128 MB

요약
0과 1로 된 띠를 왼쪽부터 여러 번 접어 겹치는 부분이 일치할 때 도달 가능한 가장 짧은 길이를 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 문자열, 재귀
정답자
아직 제출이 없습니다

문제

헥토르는 수업이 지루해서 직접 놀이를 하나 만들었다. 종이를 길게 잘라 그 위에 0과 1로 이루어진 문자열을 적었다 (예: 10000101011). 이제 인접한 두 기호 사이를 접어서, 접혀 올라온 부분이 그 아래로 겹치는 부분과 맞아떨어지게 하려고 한다. 규칙은 겹치는 자리의 기호가 서로 같아야 한다는 것이다. 헥토르는 항상 왼쪽 부분을 오른쪽으로 접는다. 즉 접는 선을 기준으로 왼쪽 조각이 뒤집혀 오른쪽 조각 위에 포개진다.

예를 들어 10000101011을 세 번째와 네 번째 기호 사이에서 접으면 00101011이 되고, 끝에서 두 번째와 마지막 기호 사이에서 접으면 1010100001이 된다. 접은 뒤 종이의 길이는 두 조각 중 더 긴 쪽의 길이가 된다.

헥토르는 이렇게 (필요하면 여러 번) 접어서 종이를 가능한 한 짧게 만들고 싶다. 예를 들어 10011001은 먼저 네 번째와 다섯 번째 기호 사이에서 접어 1001을 얻고, 다시 두 번째와 세 번째 기호 사이에서 접으면 01이 되어 길이 22까지 줄일 수 있다.

여러 번 접어서 얻을 수 있는 종이의 가장 짧은 길이를 구하여라.

입력

첫 줄에 테스트 케이스의 수 tt가 주어진다 (1≤t≤201 \le t \le 20). 이어서 tt개의 테스트 케이스가 주어진다.

각 테스트 케이스는 한 줄로 이루어지며, 헥토르의 종이를 나타내는 0과 1의 문자열이 아무 구분 기호 없이 주어진다. 이 문자열의 길이는 11 이상 100100 이하이다.

출력

각 테스트 케이스마다 한 줄에 정수 하나를 출력한다. 그 값은 (필요하면 여러 번) 접어서 얻을 수 있는 가장 짧은 종이의 길이이다.

예제3

  1. 예제 1

    입력
    3
    11111111111
    10011001
    101
    
    예상 출력
    1
    2
    3
    
  2. 예제 2

    입력
    6
    0
    1
    01
    10
    00
    11
    
    예상 출력
    1
    1
    2
    2
    1
    1
    
  3. 예제 3

    입력
    4
    0101010101
    1010
    010
    0110
    
    예상 출력
    10
    4
    3
    2