직사각형 형태의 궁전을 형성하는 모든 가로, 세로 줄에 대해서 적어도 기둥이 하나씩은 존재하도록 만들고자 할때, 세워야하는 기둥의 최솟값을 출력하는 프로그램을 작성하고 싶다.

첫째 줄에  궁전의 세로 크기 N과 가로 크기 M이 주어진다는 말.
N과 M은 50보다 작거나 같은 자연수.

둘째 줄부터는 N개의 줄에는 궁전의 상태가 주어지고
궁전의 상태는 1은 빈칸, 0은 기둥이 있는 칸이다.

세워야 하는 기둥의 최솟값을 출력하고 싶다.

입력 예시는
3 3
1 1 1
1 1 1
1 1 1 이면
출력예시는 3이다. 

N, M = map(int, input().split())

matrix_dimension = [N, M]

matrix = []
for i in range(N):
    matrix.append(list(map(int, input().split())))

count_row = 0
count_col = 0

for row in range(N):
  if sum(matrix[row]) == M:
    count_row += 1

for col in range(M):
  column_values = [matrix[row][col] for row in range(N)]
  
  if sum(column_values) == N:
    count_col += 1

if (count_col + count_row) < max(matrix_dimension):
  print((count_col + count_row))

else:
  if count_col > count_row:
    print(count_col)

  else:
    print(count_row)

'알고리즘' 카테고리의 다른 글

IP주소 판별하기  (0) 2025.04.01
N을 보는 시각  (2) 2025.03.30
백준 파이썬 - 9506  (1) 2024.02.02
백준 파이썬 - 2869  (0) 2024.02.02
백준 파이썬 - 2292  (0) 2024.01.30

+ Recent posts