꾸준히 합시다
백준 파이썬 1236번: 성 지키기 본문
1236번: 성 지키기
첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다
www.acmicpc.net
문제 유형: 구현
# 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