농장은 어떻게 출력되든 상관없다.
#include <iostream>
#include <vector>
#include <queue>
#pragma region 입출력 속도향상
#define FAST_IO() \
{\
ios::sync_with_stdio(false);\
cin.tie(NULL); \
cout.tie(NULL); \
}\
#pragma endregion
using namespace std;
#define y first
#define x second
pair<int, int> dir[]
{
{1, 0},
{-1, 0},
{0, -1},
{0, 1}
};
int main()
{
FAST_IO();
int r, c;
cin >> r >> c;
// 농장 초기화
vector<vector<char>> farm(r, vector<char>(c));
queue<pair<int, int>> pos;
for (int y = 0; y < r; y++)
{
for (int x = 0; x < c; x++)
{
cin >> farm[y][x];
if (farm[y][x] == 'W')
pos.push({ y, x });
}
}
// 늑대 위치기준 상하좌우 탐색
while (!pos.empty())
{
pair<int,int> cur = pos.front();
pos.pop();
for (int i = 0; i < 4; i++)
{
int ny = cur.y + dir[i].y, nx = cur.x + dir[i].x;
if (ny >= r ||
ny < 0 ||
nx >= c ||
nx < 0)
continue;
if (farm[ny][nx] == '.')
farm[ny][nx] = 'D';
else if (farm[ny][nx] == 'S')
{
cout << 0;
return 0;
}
}
}
cout << 1 << '\n';
for (int y = 0; y < r; y++)
{
for (int x = 0; x < c; x++)
cout << farm[y][x];
cout << '\n';
}
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[실3] 10158 - 개미 (0) | 2023.10.20 |
---|---|
[골4] 1715 - 카드 정렬하기 (0) | 2023.10.20 |
[골3] 1005 - ACM Craft (0) | 2023.10.19 |
[골5] 16500 - 문자열 판별 (0) | 2023.10.19 |
[골3] 1958 - LCS 3 (0) | 2023.10.18 |