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

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

ABBC

면접 대비

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

요약
A, B, C로 이루어진 문자열에서 뒤쪽의 B와 짝지어진 A, 또는 뒤쪽의 C와 짝지어진 B를 지우는 시행을 최대 몇 번 할 수 있는지 구한다.
난이도

보통10점 중 6점

유형
그리디, 스택, 문자열
정답자
아직 제출이 없습니다

문제

A, B, C로만 이루어졌고 길이가 |S|인 문자열 S가 있다. 당신은 이 문자열에 다음과 같은 시행을 할 수 있다.

  • A와 그 뒤에 있는 B를 지운다.
  • B와 그 뒤에 있는 C를 지운다.

각 문자는 최대 한 번만 지울 수 있다.

예를 들어 ABCBA를 보자. 각 문자에 왼쪽부터 1번, 2번, 3번. . . 과 같이 번호를 붙이면 다음과 같이 시행할 수 있다.

  • 1번 A와 2번 B를 지운다. 이 경우 시행의 횟수는 1번이고, 남은 문자열은 CBA이다. 어떤 두 문자를 골라도 시행의 조건을 만족시킬 수 없으므로, 더 이상 시행을 할 수 없다.
  • 1번 A와 4번 B를 지우고, 이어 2번 B와 3번 C를 지운다. 이 경우 시행의 횟수는 2번이고 남은 문자열은 A이다. 문자열에 남은 문자가 하나이므로, 더 이상 시행을 할 수 없다.

이외에도 시행을 할 수 있는 여러 경우의 수가 있다.

시행을 할 수 있는 최대 횟수를 구해라.

입력

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

출력

첫 번째 줄에 답을 출력한다.

제한

  • 1 ≤ |S| ≤ 300 000
  • S의 모든 문자는 A, B, C 중 하나이다.

예제2

  1. 예제 1

    입력
    ABCBA
    
    예상 출력
    2
    
  2. 예제 2

    입력
    ABCBBACBABB
    
    예상 출력
    5