https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq
NxN 배열을 지나가면서, 그 안의 MxM 배열 안의 값들을 모두 더하는 문제이다.
1) 최댓값은 모든 MxM을 확인하면서 바뀌어야 하기 때문에 for문 맨 바깥에서 설정해주기
T = int(input())
for tc in range(1, 1+T):
N , M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
MAX_kill = 0
2) NxN 배열 지나기 (2중 for문)
for i in range(N-M+1):
for j in range(N-M+1):
3) MxM 배열을 새로 지날 때마다 죽인 파리 수를 초기화하기
killed_flies = 0
4) MxM 배열을 지나가면서, 죽인 파리 수에 배열 값을 더하기
for k in range(M):
for l in range(M):
killed_flies += arr[i+k][j+l]
5) MxM 배열 하나를 다 지났을 때, 죽인 파리 수가 MAX보다 크다면, MAX를 바꾸기
if killed_flies >MAX_kill:
MAX_kill = killed_flies
전체 풀이)
T = int(input())
for tc in range(1, 1+T):
N , M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
MAX_kill = 0
for i in range(N-M+1):
for j in range(N-M+1):
killed_flies = 0
for k in range(M):
for l in range(M):
killed_flies += arr[i+k][j+l]
if killed_flies >MAX_kill:
MAX_kill = killed_flies
print(f'#{tc} {MAX_kill}')
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] SWEA 12712 파리퇴치3 (for 문으로 풀기) (0) | 2022.10.18 |
---|---|
[파이썬] SWEA 12712 파리퇴치3 (while 문으로 풀기) (0) | 2022.10.18 |
[파이썬] SWEA 5789 현주의 상자 바꾸기 (0) | 2022.10.12 |
[파이썬] SWEA 6485 삼성시의 버스노선 (0) | 2022.10.12 |
[파이썬] 백준 2559 수열 (0) | 2022.10.03 |