TIL - 프로그래밍/Python 알고리즘
[SWEA] 2001. 파리 퇴치 - Python
chaemj97
2022. 2. 20. 20:47
728x90
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
< 📝 문제 >
N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.
아래는 N=5 의 예이다.

M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다.
죽은 파리의 개수를 구하라!
예를 들어 M=2 일 경우 위 예제의 정답은 49마리가 된다

< ❓ 생각 >
< 💻 코드 >
# 테스트 케이스 개수
T = int(input())
for tc in range(1,T+1):
# N*N 배열, M*M 파리채 크기
N, M = map(int, input().split())
arr = [list(map(int,input().split())) for _ in range(N)]
# 최대값
max_v = 0
# (0,0) -> (N-M,N-M) 까지 확인하기
for i in range(N-M+1):
for j in range(N-M+1):
cnt = 0
# 사각형 크기 M*M
for x in range(i,i+M):
for y in range(j,j+M):
cnt += arr[x][y]
# 합의 최댓값 찾기
if max_v < cnt:
max_v = cnt
print(f'#{tc} {max_v}')
728x90
반응형