바둑
시간 제한1초메모리 제한128 MB
빈칸에 흑돌을 놓아 떨어진 백돌을 잡고 마지막에 남는 빈칸을 가장 많게 합니다.
- 난이도
보통10점 중 7점
- 유형
- 그래프
- 정답자
- 아직 제출이 없습니다
문제
크기의 바둑판이 있다. 흰돌은 o, 검은돌은 x, 빈 칸은 .으로 나타낸다. 처음 주어지는 바둑판에서는 어떤 두 흰돌도 상하좌우로 붙어 있지 않으므로, 흰돌은 모두 한 점짜리 돌이다.
홍준이는 빈 칸에 검은돌을 원하는 만큼 더 놓을 수 있다. 어떤 흰돌의 상하좌우 네 방향이 모두 검은돌이거나 바둑판 바깥이면 그 흰돌은 잡혀서 판에서 사라지고, 그 자리는 빈 칸이 된다. 실제 바둑과 조금 다르게 흰돌은 검은돌을 잡지 못하므로, 한 번 놓은 검은돌은 끝까지 판에 남는다.
홍준이가 보는 것은 마지막에 남는 빈 칸의 개수다. 검은돌을 놓아 흰돌을 잡으면 그 자리가 빈 칸으로 바뀌지만, 검은돌이 덮은 칸은 빈 칸이 아니게 된다. 그래서 어디에 몇 개를 놓을지 고민에 빠졌다.
홍준이를 도와 빈 칸의 개수를 최대로 하는 프로그램을 작성하시오.
입력
첫째 줄에 바둑판의 크기 이 주어진다 (). 다음 개의 줄에는 바둑판의 상태가 한 줄에 글자씩 주어진다. 흰돌은 o, 검은돌은 x, 빈 칸은 .이다. 어떤 두 흰돌도 상하좌우로 인접하지 않는다.
출력
홍준이가 만들 수 있는 빈 칸의 최대 개수를 첫째 줄에 출력한다.