백준_2508
포스트
취소

백준_2508

문제


창영이가 드디어 취직을 했다!! 그가 30세까지 취직을 안하던 이유는 바로 마음에 다니는 직장을 찾지 못해서였다. 이번에 창영이가 취직한 곳은 사탕 공장이다. 사탕 공장에 다니면 사탕 처럼 달콤한 직장생활을 할 줄 알았지만, 8시간동안 사탕 품질을 검사해야 하는 작업은 너무나 지루했다.

사탕의 품질은 다음과 같이 검사한다. 가장 먼저 사탕으로 가득 찬 박스를 연다. 그 다음 사탕의 개수와 사탕이 없는 곳의 개수를 센다.

지루함을 견디지 못한 창영이는 결국 품질을 검사하는 프로그램을 작성하기로 했다.

r행 c열 행렬이 주어진다. 이 행렬은 박스를 위에서 바라본 것이다. 행렬에는 다음과 같은 문자만 있다.

  • ”.”: 빈 곳
  • “o”: 사탕의 먹을 수 있는 부분
  • ”<>v^”: 캔디 껍질

사탕은 오직 2가지 모습만 있다

1
2
3
4
    1. >o<
    2. v
       o
       ^

위와 같은 연속된 3개의 문자만 사탕이다.

사탕은 >o.와 같이 사탕의 일부만 존재할 수 있지만, 이 것은 사탕으로 세지 않는다.

r행 c열 행렬이 주어졌을 때, 사탕의 개수를 출력하는 프로그램을 작성하시오.

입력


첫째 줄에 테스트 케이스의 개수 t가 주어진다. 각 테스트 케이스는 빈 줄로 구분된다.

각 테스트 케이스의 첫째 줄에는 r과 c 가 주어진다. (1 ≤ r,c ≤ 400) 그 다음 r개의 줄에는 행렬의 각 행이 순서대로 주어진다. 행렬의 각 행은 c개의 문자이며, “.o<>v^”만 포함하고 있다. (각각의 아스키 값은 46, 111, 60, 62, 118, 94이다)

출력


각각의 테스트 케이스에 대해 한 줄에 하나의 정수만 출력한다. 이 값은 박스에 들어있는 사탕의 개수이다.

예제 입력


1
2
3
4
5
6
7
8
1

5 4
.>o<
v.^.
ooo.
^.^.
>o<<

예제 출력


1
3

풀이과정


각 테스트 케이스마다 입력받은 사탕 배열을 candy 배열에 입력시킨 후, 각 행과 열을 돌면서 조건에 맞는 사탕 모양이 존재하는지 검사하고 존재한다면 cnt를 하나씩 늘려줬다.

코드

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.