2001. 파리퇴치
문제)
N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.
아래는 N=5 의 예이다.
M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다.
죽은 파리의 개수를 구하라!
예를 들어 M=2 일 경우 위 예제의 정답은 49마리가 된다.
[제약 사항]
1. N 은 5 이상 15 이하이다.
2. M은 2 이상 N 이하이다.
3. 각 영역의 파리 갯수는 30 이하 이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 N 과 M 이 주어지고,
다음 N 줄에 걸쳐 N x N 배열이 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
T = int(input())
for _ in range(T):
n, m = map(int, input().split())
li = [list(map(int, input().split())) for i in range(n)]
maxfly = 0
for o in range(n - m + 1):
for k in range(n - m + 1):
total = 0
for i in range(m):
for j in range(m):
total += li[o + i][k + j]
if total > maxfly:
maxfly = total
print(f"#{_ + 1} {maxfly}")
|
cs |
문제 출처 : https://swexpertacademy.com/main/main.do
※ SW Expert 아카데미는 원칙적으로 문제를 무단 복제하는 것을 금지합니다.
학습용으로 문제를 가져왔으나, 문제가 될 시 수정 및 삭제하겠습니다.
'Develop > Python + SWEA' 카테고리의 다른 글
[SW Expert Academy] 1974. 스도쿠 검증 (0) | 2022.02.16 |
---|---|
[SW Expert Academy] 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2022.02.16 |
[SW Expert Academy] 1210. Ladder1 (0) | 2022.02.16 |
[SW Expert Academy] 4843. 특별한 정렬 (0) | 2022.02.16 |
[SW Expert Academy] 4839. 이진탐색 (0) | 2022.02.16 |