방향을 가진 레이저 타워와 적이 있는 격자에서 서로 겹치지 않도록 발사할 타워와 목표 칸을 정해 제거할 수 있는 적의 최댓값을 구한다.
어려움8그리디완전 탐색구현행렬면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB현정이는 직사각형 보드 위에서 진행되는 전략 게임을 하고 있다. 보드는 단위 정사각형 칸으로 나뉘어 있고, 일부 칸은 적이 차지하고 있다. 지금은 현정이의 차례이고, 적을 최대한 많이 제거하려고 한다.
적이 없는 칸 가운데 일부에는 현정이의 레이저 타워가 있다. 각 타워는 북, 남, 서, 동 가운데 한 방향을 바라본다. 타워가 매우 높아서 바라보는 방향에 놓인 모든 칸을 공격할 수 있다.
현정이는 타워마다 레이저를 쏠지 말지 정하고, 쏘기로 한 타워는 바라보는 방향에 있는 칸 하나를 목표로 고른다. 쏘기로 한 타워는 모두 동시에 발사하며, 목표로 삼은 칸에 있는 적은 모두 제거된다. 레이저가 지나가기만 한 칸의 적은 제거되지 않는다.
배치와 발사에는 다음 규칙이 있다.
보드의 상태가 주어질 때, 제거할 수 있는 적의 최대 수를 구하는 프로그램을 작성하시오.
첫째 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. (1≤N,M≤50)
둘째 줄부터 N개 줄에 보드의 상태가 한 줄에 M개의 문자로 주어진다. 각 문자의 뜻은 다음과 같다.
.: 빈 칸1부터 9까지: 그 칸에 있는 적의 수A, V, <, >: 각각 북, 남, 서, 동을 바라보는 레이저 타워첫째 줄에 제거할 수 있는 적의 최대 수를 출력한다.