AiGo
면접 대비시간 제한2초메모리 제한512 MB
1차원 바둑판에서 흰 돌을 한 수 두어 잡을 수 있는 검은 돌의 최대 개수를 구합니다.
문제
최근 바둑을 두는 AI에 대한 연구가 활발하다. 친구 Hikaru는 새로운 바둑 AI인 Sai를 개발해 앞으로 F사 또는 G사에 제안하려고 한다. 첫 단계로 Hikaru는 바둑을 제한한 버전인 1D-Go용 AI를 만들기로 했다.
바둑과 1D-Go 모두에서 돌을 잡는 것은 중요한 전략이다. Hikaru는 돌을 잡는 기능 중 하나를 구현해 달라고 부탁했다.
1D-Go의 판은 한 줄로 늘어선 개의 칸으로 이루어진다. 판의 상태는 길이가 인 문자열 로 나타낸다. 번째 문자는 번째 칸을 나타낸다.
- 'B'는 그 칸에 흑돌이 있다는 뜻이다.
- 'W'는 그 칸에 백돌이 있다는 뜻이다.
- '.'은 그 칸이 비어 있다는 뜻이다.
같은 색 돌이 연속으로 이어진 최대 묶음을 연이라고 한다. 연이 상대 색 돌에 둘러싸이면 그 연은 잡힌다. 정확히는, 번째와 번째 칸()에 백돌이 있고, 인 모든 칸 에 흑돌이 있으면 그 흑돌들은 잡힌다. 색을 바꿔도 같다.
다음 수는 백돌 플레이어가 둔다. 플레이어는 빈 칸에 백돌을 놓을 수 있다. 다만 그 수로 흑돌 연이 잡히더라도, 흑돌에 둘러싸이는 백돌 연을 만들 수는 없다. 주어진 상태에는 백돌을 놓을 수 있는 빈 칸이 적어도 하나 있고, 이미 둘러싸인 연은 없다.
백돌 플레이어가 다음 수로 잡을 수 있는 흑돌의 최대 개수를 구하는 프로그램을 작성하라.
입력
입력은 한 줄이며, 정수 ()과 길이가 인 문자열 가 공백으로 구분되어 주어진다.
출력
다음 수로 잡을 수 있는 흑돌의 최대 개수를 한 줄에 출력한다.
힌트
3번째와 4번째 테스트 케이스에서는 4번째 칸에 백돌을 놓으면 백돌 연이 흑돌에 둘러싸이므로 백돌을 놓을 수 없다. 이는 원래 바둑과 다른 규칙이다.
5번째 테스트 케이스에서는 4번째 칸에 백돌을 놓아도 흑돌을 하나도 잡을 수 없다. 판의 가장자리와 백돌로 흑돌을 가둬도 잡을 수 없다. 이 규칙 역시 원래 바둑과 다르다.