일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Git
- 배열
- 기초
- 탐색
- 유닉스
- 동적 계획
- NQueen
- MiniHeap
- 자료구조
- 분할 정복
- 그리디
- 문법
- 알고리즘
- git hub
- 스택
- 재귀 함수
- 자기개발
- 우분투
- 정렬
- 파이썬
- format 메서드
- type 함수
- 이진 탐색
- UNIX
- 백준
- IT
- 그래프
- 트리
- sys.stdin.readline()
- 순차 탐색
Archives
- Today
- Total
코딩고치
[파이썬][백준] 1236번: 성 지키기 본문
1. 문제

주소: https://www.acmicpc.net/problem/1236
1236번: 성 지키기
첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다
www.acmicpc.net
문제 유형: 탐색
- 경비원의 수를 받기 위한 행과 열 리스트 선언
- 경비원의 위치를 입력받고 경비가 있는 곳을 파악한 후 리스트에 저장
- 행의 부족인원이 열의 부족인원보다 많으면 행의 부족인원수를 출력
- 열의 부족인원이 더 많으면 열의 부족인원 출력
2. 소스코드
import sys
def guard(n, m):
col = [0 for i in range(n)]
row = [0 for i in range(m)]
for i in range(n):
guard_list = list(map(str, sys.stdin.readline().strip()))
for j in range(m):
if guard_list[j] == 'X':
col[i] += 1
row[j] += 1
if col.count(0) > row.count(0):
return col.count(0)
else:
return row.count(0)
n, m = map(int, sys.stdin.readline().split(' '))
print(guard(n, m))
'파이썬 > 백준 문제' 카테고리의 다른 글
[파이썬][백준] 1939번: 중량제한 (0) | 2020.06.05 |
---|---|
[ 파이썬][백준] 2110번: 공유기 설치 (0) | 2020.06.04 |
[파이썬][백준] 1668번: 트로피 진열 (0) | 2020.05.31 |
[파이썬][백준] 1302번: 베스트셀러 (0) | 2020.05.31 |
[파이썬][백준] 1568번: 새 (0) | 2020.05.31 |