https://www.acmicpc.net/problem/10656
조건맞춰서 구현하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <iostream> using namespace std; char a[51][51]; void garocheck(int i,int j) { if (j == 0 || a[i][j - 1] == '#') { if ((a[i][j] == '.' || a[i][j] == '!') && (a[i][j+1] == '.' || a[i][j+1] == '!') && (a[i][j+2] == '.' || a[i][j+2] == '!')) { a[i][j] = '!'; } } } void serocheck(int i, int j) { if (i == 0 || a[i-1][j] == '#') { if ((a[i][j] == '.'|| a[i][j] == '!') && (a[i+1][j] == '.'|| a[i+1][j] == '!') && (a[i+2][j] == '.'|| a[i+2][j] == '!')) { a[i][j] = '!'; } } } int main() { int n, m; int ans = 0; cin >> n >> m;//n세로 m가로 for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { garocheck(i,j); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { serocheck(i,j); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] == '!') { ans++; } } } cout << ans << '\n'; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] == '!') { cout << i+1 << ' ' << j+1 << '\n'; } } } } | cs |
'알고리즘 > 구현 및 시뮬레이션' 카테고리의 다른 글
[B10752] - Cow Hopscotch (0) | 2018.09.22 |
---|---|
[B10025] - 게으른 백곰 (0) | 2018.09.22 |
[B9873] - Cow Baseball (0) | 2018.09.21 |
[S1952] - [모의 SW 역량테스트] 수영장 (0) | 2018.08.29 |
[S2382] - [모의 SW 역량테스트] 미생물 격리 (0) | 2018.08.26 |