문제 보러 가기 👈
행을 반복하며 경비원이 없는 행 카운트(n_need)
열을 반복하며 경비원이 없는 열 카운트(m_need)
하나의 경비원당 행, 열 두가지를 만족
필요한 최소한의 경비원 수
= min(n_need, m_need) + max(n_need, m_need) - min(n_need, m_need)
= max(행에서 필요한 경비원 수, 열에서 필요한 경비원 수)
N, M = map(int, input().split())
castle = [input() for _ in range(N)]
n_need = 0
for s in castle:
if 'X' not in s:
n_need += 1
m_need = 0
for s in list(zip(*castle)):
if 'X' not in s:
m_need += 1
print(max(n_need, m_need))
📒2차원 배열 뒤집기 -> zip(*)사용