Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SQL 문법
- 오라클
- 기초
- SQL
- 백준
- 스프링부트
- 알고리즘
- 문법
- 데이터베이스
- 프로그래머스
- 스파크
- 빅데이터
- 리눅스마스터 2급 2차
- 필기
- 코딩테스트
- 해킹실습
- 이클립스
- 문제풀이
- 토이프로젝트
- 파이썬
- 엘라스틱서치
- 데이터프로그래밍
- c언어
- SQL 정리
- 자바
- MySQL
- 프로그래밍
- 모의해킹
- 스프링
- 위클리챌린지
Archives
- Today
- Total
개발일기
백준 1236번 파이썬 풀이 : 성 지키기 본문
반응형
문제 링크 : https://www.acmicpc.net/problem/1236
1236번: 성 지키기
첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다
www.acmicpc.net
문제
영식이는 직사각형 모양의 성을 가지고 있다. 성의 1층은 몇 명의 경비원에 의해서 보호되고 있다. 영식이는 모든 행과 모든 열에 한 명 이상의 경비원이 있으면 좋겠다고 생각했다.
성의 크기와 경비원이 어디있는지 주어졌을 때, 몇 명의 경비원을 최소로 추가해야 영식이를 만족시키는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다.
출력
첫째 줄에 추가해야 하는 경비원의 최솟값을 출력한다.
# 문제 풀이 (알고리즘 분류 : 구현)
해당 문제는 X가 없는 가로줄의 수와 세로줄의 수 중 큰 수를 리턴하면 된다.
1
2
3
4
5
6
7
8
|
n, m = map(int, input().split())
answer = []
for i in range(n):
answer.append(input())
x_count, y_count = 0, 0
|
cs |
n과 m을 각각 입력 받아 준 후 n의 길이만큼 다시 input 받고 answer에 append 해주며 2차원 배열을 완성한다.
1
2
3
4
5
6
7
8
9
|
for i in range(n):
if "X" not in answer[i]:
x_count += 1
for j in range(m):
if "X" not in [answer[i][j] for i in range(n)]:
y_count += 1
print(max(x_count, y_count))
|
cs |
가로와 세로에서 각각 X가 필요한 줄의 수를 count 한 후 max값을 리턴하면 된다.
여기서 if 문 안에 반복문을 넣을 수 있다는 파이썬의 편안함을 알고 있으면 문제푸는데 많은 도움이 될 것 같다.
반응형
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
백준 1371번 파이썬 풀이 : 가장 많은 글자 (0) | 2021.09.21 |
---|---|
백준 1718번 파이썬 풀이 : 암호 (0) | 2021.09.20 |
백준 1120번 파이썬 풀이 : 문자열 (0) | 2021.09.15 |
백준 5073번 파이썬 풀이 : 삼각형과 세 변 (0) | 2021.09.14 |
백준 2576번 파이썬 풀이 : 홀수 (0) | 2021.09.13 |
Comments