import sys
n, m = map(int, sys.stdin.readline().rstrip().split())
count = 0
row_check = [False] * n
colum_check = [False] * m
for i in range(n):
s = input()
if 'X' in s:
row_check[i] = True
for j in range(m):
if s[j] == 'X':
colum_check[j] = True
for i in range(n):
if not row_check[i]:
count += 1
for j in range(m):
if not colum_check[j]:
count += 1
redun_count = 0
#중복 찾기
for i in range(n):
for j in range(m):
if row_check[i] == False and colum_check[j] == False:
redun_count += 1
colum_check[j] = True
break
print(count-redun_count)
행,열에 경비원이 있는지 bool 리스트로 만들고 각각 카운트한다.
각각의 false를 세어주고
중복을 찾는데, 행마다 둘다 false인 경우를 세고 column을 true로 바꿔주며, 바로 다음 행으로 넘어간다
'[알고리즘 공부]' 카테고리의 다른 글
알고리즘 기법 - 브루트 포스(전체탐색) 알고리즘 (0) | 2025.02.08 |
---|