문제 링크: https://www.acmicpc.net/problem/1236

 

빈 열과 빈 행의 개수를 센 뒤, 그 중에 큰 값을 출력하면 됩니다.

#pragma GCC optimize ("Ofast")

#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;


char castle[50][50];

int main()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
#endif

	ios_base::sync_with_stdio(false);
	cin.tie(nullptr), cout.tie(nullptr);

	int n, m;
	cin >> n >> m;
	
	int empty_row = n, empty_col = m;
	for (int i = 0; i < n; ++i) {
		bool guard = false;
		for (int j = 0; j < m; ++j) {
			cin >> castle[i][j];
			if (castle[i][j] == 'X')
				guard = true;
		}
		if (guard) --empty_row;
	}

	for (int j = 0; j < m; ++j) {
		bool guard = false;
		for (int i = 0; i < n; ++i) {
			if (castle[i][j] == 'X') {
				guard = true;
				break;
			}
		}
		if (guard) --empty_col;
	}

	cout << max(empty_row, empty_col) << '\n';

	return 0;
}
반응형