꾸준히 합시다
백준 파이썬 1236번: 성 지키기 본문
문제 유형: 구현
# Solution 1
n, m = map(int, input().split())
array = []
for _ in range(n):
array.append(input())
row_count, col_count = 0, 0
for i in range(n):
if 'X' not in array[i] :
row_count += 1
for j in range(m):
if "X" not in [array[i][j] for i in range(n)]:
col_count += 1
print(max(row_count, col_count))
# Solution 2
n, m = map(int, input().split())
array = []
for _ in range(n):
array.append(input())
row = [0] * n
col = [0] * m
for i in range(n):
for j in range(m):
if array[i][j] == "X" :
row[i] = 1
col[j] = 1
row_count = 0
for i in range(n):
if row[i] == 0:
row_count += 1
col_count = 0
for i in range(m):
if col[i] == 0:
col_count += 1
print(max(row_count, col_count))
Solution 1, 2 둘 다 접근법은 같다.
각 행과 열마다 X가 들어있지 않는 행, 열의 개수를 구하고 그중 큰 값을 출력해주면 된다.
예를 들어 성의 상태가 아래와 같다고 하면 현재 경비원이 필요한 행은 1개, 열은 2개임으로 2를 출력해주면 된다.
X | |||
X | |||
X |
'코딩 테스트 문제 풀이' 카테고리의 다른 글
백준 파이썬 10093번: 숫자 (0) | 2021.03.09 |
---|---|
백준 파이썬 4344번: 평균은 넘겠지 (0) | 2021.03.08 |
백준 파이썬 1568번: 새 (0) | 2021.03.08 |
백준 파이썬 1546번: 평균 (0) | 2021.03.08 |
백준 파이썬 1543번: 문서 검색 (0) | 2021.03.08 |
Comments