만드는 중입니다

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

AiGo

면접 대비

시간 제한2초메모리 제한512 MB

요약
1차원 바둑판에서 흰 돌을 한 수 두어 잡을 수 있는 검은 돌의 최대 개수를 구합니다.
난이도

쉬움10점 중 3점

유형
완전 탐색, 시뮬레이션, 문자열
정답자
아직 제출이 없습니다

문제

최근 바둑을 두는 AI에 대한 연구가 활발하다. 친구 Hikaru는 새로운 바둑 AI인 Sai를 개발해 앞으로 F사 또는 G사에 제안하려고 한다. 첫 단계로 Hikaru는 바둑을 제한한 버전인 1D-Go용 AI를 만들기로 했다.

바둑과 1D-Go 모두에서 돌을 잡는 것은 중요한 전략이다. Hikaru는 돌을 잡는 기능 중 하나를 구현해 달라고 부탁했다.

1D-Go의 판은 한 줄로 늘어선 LL개의 칸으로 이루어진다. 판의 상태는 길이가 LL인 문자열 SS로 나타낸다. ii번째 문자는 ii번째 칸을 나타낸다.

  • 'B'는 그 칸에 흑돌이 있다는 뜻이다.
  • 'W'는 그 칸에 백돌이 있다는 뜻이다.
  • '.'은 그 칸이 비어 있다는 뜻이다.

같은 색 돌이 연속으로 이어진 최대 묶음을 연이라고 한다. 연이 상대 색 돌에 둘러싸이면 그 연은 잡힌다. 정확히는, ii번째와 jj번째 칸(1<i+1<j≤L1 < i+1 < j \le L)에 백돌이 있고, i<k<ji < k < j인 모든 칸 kk에 흑돌이 있으면 그 흑돌들은 잡힌다. 색을 바꿔도 같다.

다음 수는 백돌 플레이어가 둔다. 플레이어는 빈 칸에 백돌을 놓을 수 있다. 다만 그 수로 흑돌 연이 잡히더라도, 흑돌에 둘러싸이는 백돌 연을 만들 수는 없다. 주어진 상태에는 백돌을 놓을 수 있는 빈 칸이 적어도 하나 있고, 이미 둘러싸인 연은 없다.

백돌 플레이어가 다음 수로 잡을 수 있는 흑돌의 최대 개수를 구하는 프로그램을 작성하라.

입력

입력은 한 줄이며, 정수 LL(1≤L≤1001 \le L \le 100)과 길이가 LL인 문자열 SS가 공백으로 구분되어 주어진다.

출력

다음 수로 잡을 수 있는 흑돌의 최대 개수를 한 줄에 출력한다.

힌트

3번째와 4번째 테스트 케이스에서는 4번째 칸에 백돌을 놓으면 백돌 연이 흑돌에 둘러싸이므로 백돌을 놓을 수 없다. 이는 원래 바둑과 다른 규칙이다.

5번째 테스트 케이스에서는 4번째 칸에 백돌을 놓아도 흑돌을 하나도 잡을 수 없다. 판의 가장자리와 백돌로 흑돌을 가둬도 잡을 수 없다. 이 규칙 역시 원래 바둑과 다르다.

예제5

  1. 예제 1

    입력
    5 .WB..
    
    예상 출력
    1
    
  2. 예제 2

    입력
    5 .WBB.
    
    예상 출력
    2
    
  3. 예제 3

    입력
    6 .WB.B.
    
    예상 출력
    0
    
  4. 예제 4

    입력
    6 .WB.WB
    
    예상 출력
    0
    
  5. 예제 5

    입력
    5 BBB..
    
    예상 출력
    0