[백준/파이썬] 1236번 성 지키기 풀이

업데이트:



문제 정보


풀이

문제

성의 각 행/열에 최소 한 명의 경비병이 있어야 할 때, 추가로 필요한 최소 경비병 수를 구하는 문제입니다.

코드

n,m=map(int,input().split())
row,col=[False]*n,[False]*m
for i in range(n):
    s=input()
    for j in range(m):
        if s[j] == 'X':row[i]=col[j]=True
print(max(len(list(filter(lambda x:not x, row))),len(list(filter(lambda x:not x, col)))))

설명

경비병이 없는 행 수와 열 수를 각각 세고, 둘 중 큰 값이 정답입니다.

한 명의 경비병이 행과 열을 동시에 커버할 수 있기 때문에 최소 추가 인원은 max(빈 행 수, 빈 열 수)가 됩니다.



댓글남기기