«   2022/10   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Archives
Today
0
Total
96,326
관리 메뉴

차근차근

[백준 1236] 성 지키기 본문

대학교/Algorithm

[백준 1236] 성 지키기

SWKo 2020. 9. 2. 01:44

0. 제목

  • 백준 1236 성 지키기
  • BOJ 1236 성 지키기
  • Python 1236 성 지키기

1. 문제

https://www.acmicpc.net/problem/1236

 

1236번: 성 지키기

첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다

www.acmicpc.net


2. 풀이

  • 2차원 배열로 생각하여 풀면 되는 문제이다.
  • 가장 먼저 n행, m열의 2차원 배열에 모두 0을 넣는다. 2차원 배열을 탐색하면서 X가 있는 곳에 1로 갱신한다.
  • 그 후, 행과 열 각각 탐색하며 원소가 0인 경우 각각의 숫자(필요한 경비원 수)에 1씩 더한다.
  • 행에서 필요한 경비원 수와 열에서 필요한 경비원 수 중 최대 값이 정답이 된다.

3. 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
n, m = map(int, input().split())
arr = []
 
for _ in range(n):
    arr.append(input())
    
row = [0* n
column = [0* m
 
for i in range(n):
    for j in range(m):
        if arr[i][j] == 'X':
            row[i] = 1
            column [j] = 1
            
row_cnt = 0
for i in range(n):
    if row[i] == 0:
        row_cnt += 1
        
column_cnt = 0
for i in range(m):
    if column[i] == 0:
        column_cnt += 1
        
print(max(row_cnt, column_cnt))

 

'대학교 > Algorithm' 카테고리의 다른 글

[백준 1874] 스택 수열  (0) 2020.09.03
[백준 1302] 베스트 셀러  (0) 2020.09.02
[백준 1668] 트로피 진열  (0) 2020.08.30
[백준 1568] 새  (0) 2020.08.25
[백준 1543] 문서 검색  (0) 2020.08.24
0 Comments
댓글쓰기 폼