문제출처 : https://www.acmicpc.net/problem/2140
code
#include <iostream>
using namespace std;
int arr[100][100];
int main()
{
int N,i, j, result = 0;
string s;
cin >> N;
for (i = 0; i < N; i++)
{
cin >> s;
for (j = 0; j < N; j++)
{
if (s[j] == '#')
{
result++;
arr[i][j] = -1;
}
else
arr[i][j] = s[j] - '0';
}
}
for (i = 1; i < N - 1; i++)
{
for (j = 1; j < N - 1; j++)
{
if (arr[i - 1][j - 1] == 0)
{
result--; continue;
}
if (arr[i - 1][j] == 0)
{
result--; continue;
}
if (arr[i - 1][j + 1] == 0)
{
result--; continue;
}
if (arr[i][j - 1] == 0)
{
result--; continue;
}
if (arr[i][j + 1] == 0)
{
result--; continue;
}
if (arr[i + 1][j - 1] == 0)
{
result--; continue;
}
if (arr[i + 1][j] == 0)
{
result--; continue;
}
if (arr[i + 1][j + 1] == 0)
{
result--; continue;
}
}
}
cout << result;
return 0;
}
알고리즘도 맞는것 같고 예제도 문제없이 잘출력되는데 제출만하면 왜 틀리다고하는지 모르겠다.
#이있는 방을 돌면서 주위 8칸에 0이 하나라도 있으면 지뢰가 없다는 뜻이기 때문에 #의 갯수-1을 해준다. 질문에 올려놨으니까 누가 답변해주면 다시 풀어봐야겠다...