누울 자리를 찾아라.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int chartoint(char s);
int main(void) {
int cnt;
scanf("%d", &cnt);
char arr[100][100];
for (int i = 0; i < cnt; i++) {
scanf("%s", &arr[i]);
}
int rowzari=0; int colzari=0;
for (int i = 0; i < cnt; i++) {
int count = 0;
int zari = 0;
for (int j = 0; j < cnt; j++) {
if (arr[i][j] == '.') {
count++;
}
else {
if (count >= 2) {
zari++;
}
count = 0;
}
}
if (count >= 2) {
zari++;
}
rowzari = rowzari + zari;
}
for (int i = 0; i < cnt; i++) {
int count = 0;
int zari = 0;
for (int j = 0; j < cnt; j++) {
if (arr[j][i] == '.') {
count++;
}
else {
if (count >= 2) {
zari++;
}
count = 0;
}
}
if (count >= 2) {
zari++;
}
colzari = colzari + zari;
}
printf("%d %d", rowzari, colzari);
return 0;
}
슬슬 필요 없는 메모리가 크게 잡히는 것 같다. malloc 사용해보깅
풀이
1. 2차원 배열 입력받기
2. 2중 for문으로 구현. 2차원 배열을 순회하며 ','가 나올때 count++
3. X가 나오면 그때의 count를 참고하여 2 이상이면 zari++후 count 초기화.
4. 한 열이 끝나면 그때 count를 참고하여 2 이상이면 zari++. 이후 구해진 zari를 합치기
5. 해당 작업을 열방향으로 한번 행방향으로 한번 수행하기
