-
[16956] 늑대와 양BOJ 2022. 2. 5. 09:48
https://www.acmicpc.net/problem/16956
16956번: 늑대와 양
크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게
www.acmicpc.net
<문제>
그래프랑은 별로 관련이 없다.
모든 빈칸에 울타리를 채워넣고, 'W'를 기준으로 상하좌우에 'S'가 있는지만 확인하면 된다.
<소스코드>
#include <bits/stdc++.h>using namespace std;int n, m, dy[4] = {0, 1, 0, -1}, dx[4] = {1, 0, -1, 0};char a[505][505];bool vst[505][505];int main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cin >> n >> m;int i, j;for (i = 0; i < n; i++)for (j = 0; j < m; j++) cin >> a[i][j];for (i = 0; i < n; i++)for (j = 0; j < m; j++)if (a[i][j] == '.') a[i][j] = 'D';for (i = 0; i < n; i++)for (j = 0; j < m; j++)if (a[i][j] == 'W') {for (int d = 0; d < 4; d++) {int y = i + dy[d];int x = j + dx[d];if (y < 0 || x < 0 || y >= n || x >= m) continue;if (a[y][x] == 'S') {cout << "0";return 0;}}}cout << "1\n";for (i = 0; i < n; i++) {for (j = 0; j < m; j++) cout << a[i][j];cout << '\n';}return 0;}'BOJ' 카테고리의 다른 글
[11657] 타임머신 (0) 2022.02.06 [1219] 오민식의 고민 (0) 2022.02.06 [11403] 경로 찾기 (0) 2022.02.05 [11265] 끝나지 않는 파티 (0) 2022.02.05 [2210] 숫자판 점프 (0) 2022.02.05