만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

KSA 문자열 2

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

요약
K, S, A로 이루어진 문자열 X가 주어집니다. 문자를 삭제하거나 맨 앞으로 옮겨서 KSA가 반복되는 가장 긴 문자열을 만들 때 필요한 최소 연산 수를 구합니다.
난이도

보통10점 중 7점

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

문제

KSAAC 운영진은 모두 KSA를 사랑하기 때문에 다음 조건을 만족하는 문자열을 좋아한다.

문자열의 길이를 NN이라고 할 때, 모든 1≤i≤N1 \leq i \leq N에 대하여

  • ii를 33으로 나눈 나머지가 11이면 ii번째 문자는 K이다.
  • ii를 33으로 나눈 나머지가 22이면 ii번째 문자는 S이다.
  • ii를 33으로 나눈 나머지가 00이면 ii번째 문자는 A이다.

빈 문자열도 KSAAC 운영진이 좋아하는 문자열이다.

문자열에는 다음 시행을 00회 이상 할 수 있으며, 매회 둘 중 하나를 선택하여 시행할 수 있다.

  • 존재하는 아무 문자를 한 개 제거한다.
  • 존재하는 아무 문자 한 개를 맨 앞으로 옮긴다.

주어진 문자열 XX에 적절한 시행을 하여 XX를 가능한 최대 길이의 KSAAC 운영진이 좋아하는 문자열로 바꾸려고 한다. 이때 필요한 시행의 최소 횟수를 구하여라.

입력

첫 번째 줄에 문자열 XX가 주어진다.

출력

문자열 XX를 가능한 최대 길이의 KSAAC 운영진이 좋아하는 문자열로 바꾸기 위한 최소 시행 횟수를 출력한다.

제한

  • 1≤∣X∣≤5×1051 \le |X| \le 5 \times 10^5
  • Xi∈{K,S,A}X_i \in \{\texttt{K}, \texttt{S}, \texttt{A}\}

예제1

  1. 예제 1

    입력
    KAKSK
    
    예상 출력
    3