일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자료구조
- NQueen
- 파이썬
- 이진 탐색
- 재귀 함수
- 스택
- UNIX
- 트리
- 기초
- 유닉스
- 알고리즘
- type 함수
- 자기개발
- MiniHeap
- 배열
- 순차 탐색
- 분할 정복
- 정렬
- Git
- 백준
- 동적 계획
- 탐색
- 그리디
- 그래프
- 문법
- git hub
- IT
- 우분투
- format 메서드
- 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 |
Comments