동전 수집

면접 대비

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

요약
로봇이 격자의 왼쪽 위에서 오른쪽 아래로 오른쪽이나 아래로만 이동할 때 주울 수 있는 동전의 최대 개수를 구한다.
난이도

보통10점 중 4점

유형
동적 계획법, 행렬, 배열, 구현
정답자
아직 제출이 없습니다

문제

n×mn \times m 격자판의 각 칸에 동전이 놓여 있으며, 한 칸에는 동전이 최대 한 개만 놓입니다. 로봇은 격자판의 왼쪽 위 칸에서 출발하여 오른쪽 아래 칸까지 이동하면서 되도록 많은 동전을 모으려고 합니다. 로봇은 한 번의 이동에서 현재 칸을 기준으로 오른쪽으로 한 칸 또는 아래로 한 칸만 움직일 수 있습니다. 동전이 있는 칸을 지날 때는 항상 그 동전을 줍습니다. 로봇이 모을 수 있는 동전의 최대 개수를 구하세요.

아래 그림은 격자판의 한 예시입니다.

입력

첫째 줄에는 테스트 세트의 개수를 나타내는 양의 정수 TT가 주어집니다.

각 테스트 세트의 첫째 줄에는 격자판의 크기를 나타내는 두 양의 정수 nn과 mm이 주어집니다 (1≤n≤501 \le n \le 50, 1≤m≤501 \le m \le 50). 이어지는 nn개의 줄에는 각각 mm개의 문자가 주어지며, 각 문자는 빈 칸을 뜻하는 X 또는 동전을 뜻하는 C입니다.

출력

각 테스트 세트마다 로봇이 모을 수 있는 동전의 최대 개수를 한 줄에 하나씩 출력하세요.

예제3

  1. 예제 1

    입력
    2
    5 7
    CXXXXCC
    XCCCXXX
    XXXXXXC
    CXCCXXX
    XCXXXCX
    4 4
    XXXX
    CCCC
    XXXX
    CCCC
    
    예상 출력
    6
    5
    
  2. 예제 2

    입력
    1
    1 1
    C
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1
    1 5
    CCCCC
    
    예상 출력
    5