본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[SWEA] 2001. 파리 퇴치 - Python

by chaemj97 2022. 2. 20.
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
반응형

댓글