문제 - 9082
처음에는 지뢰가 있는 곳은 주변의 숫자를 없애주는 최신화작업을 한 후 왼쪽,오른쪽 ,나머지 부분에서의 #이며 주변의 지뢰의 개수가 0이상인 경우에만 지뢰를 설치를 하고 주변의 숫자를 하나씩 내렸는데 25%에서 틀렸다고하여 그냥 최신화부분을 없애버렸다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int T = Integer.parseInt(st.nextToken());
for(int t=0;t<T;t++)
{
int ans = 0;
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
String s[] = st.nextToken().split("");
int []firstRow = new int[N];
for(int i=0;i<s.length;i++)
{
firstRow[i] = Integer.parseInt(s[i]);
}
st = new StringTokenizer(br.readLine());
String str = st.nextToken();
char []secondRow = new char[N];
for(int i=0;i<str.length();i++)
{
secondRow[i] = str.charAt(i);
}
for(int i=0;i<N;i++)
{
if(i==0)
{
if(firstRow[i] != 0 && firstRow[i+1] !=0 )
{
firstRow[i]--;
firstRow[i+1]--;
ans++;
}
}else if(i== N-1)
{
if(firstRow[i] != 0 && firstRow[i-1] !=0 )
{
firstRow[i]--;
firstRow[i-1]--;
ans++;
}
}else{
if(firstRow[i-1] != 0 && firstRow[i] != 0 && firstRow[i+1] !=0 )
{
firstRow[i-1]--;
firstRow[i]--;
firstRow[i+1]--;
ans++;
}
}
}
System.out.println(ans);
}
}
}