https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


  • N 의 최댓값 15이므로, 간단하게 M*M 의 영역만큼 각 영역을 왼쪽위 꼭짓점으로 해서 완전 탐색 돌리면 된다.

testcases = int(input())

for t in range(testcases) :
    flies = []
    ans = 0
    n, m = map(int, input().split())
    for r in range(n) :
        flies.append(list(map(int, input().split())))   # 파리 갯수 정보(2차원 리스트)
    for r in range(n - m + 1) :
        for c in range(n - m + 1) :                     # 영역들 완전탐색 (인덱스 고려)
            temp = 0
            for tr in range(m) :                            # 파리채 영역
                for tc in range(m) :
                    temp += flies[r+tr][c+tc]
            if temp > ans :
                ans = temp
    print("#{} {}".format(t+1, ans))

+ Recent posts