https://www.acmicpc.net/problem/1652
<누울 자리를 찾아라>
이 문제는 N x N 의 배열에서 가로, 세로로 2칸 이상 연속으로 '.'으로 이루어진 곳을 카운팅해주면 되는 간단한 문제이다.
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 | #include <iostream> #define SIZE 101 using namespace std; char room[SIZE][SIZE]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for(int i=0; i<n; ++i) { cin >> room[i]; } int countH = 0; int countV = 0; // horizontal for(int i=0; i<n; ++i) { int tempH = 0; int tempV = 0; for(int j = 0; j < n; ++j) { // horizontal if(room[i][j] == '.') ++tempH; else if (room[i][j] == 'X') { if(tempH >= 2) ++countH; tempH = 0; } // vertical if(room[j][i] == '.') ++tempV; else if (room[j][i] == 'X') { if(tempV >= 2) ++countV; tempV = 0; } } if(tempH >= 2) ++countH; if(tempV >= 2) ++countV; } cout << countH << " " << countV << '\n'; return 0; } | cs |
for문을 돌던 중 X를 발견하면 지금까지의 ' . ' 이 몇 개 연속으로 있었는 지 보고 2개 이상이면 count를 증가시켜준다.
이중 for문 안에서 하나의 for문을 모두 돈 경우에도 ' . ' 이 두 개 연속으로 있었다면 count를 증가시켜준다.
'알고리즘 > 백준 문제풀기' 카테고리의 다른 글
BOJ 백준 2931 가스관 < DFS> (0) | 2019.04.14 |
---|---|
BOJ 백준 16234 인구이동<BFS> (0) | 2019.02.18 |
BOJ 백준 1037 약수 <수학> (0) | 2019.02.02 |
BOJ 백준 2869 달팽이는 올라가고 싶다 <수학> (0) | 2019.01.31 |
BOJ 백준 3053 택시 기하학 < 기하 알고리즘 > (0) | 2019.01.30 |