티스토리 뷰

문제출처 - https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE

 

SW Expert Academy

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

swexpertacademy.com

t = int(input())

for case in range(t):
    n, m = map(int, input().split())
    arr = [list(map(int, input().split())) for _ in range(n)]
    fly = 0

    for i in range(n-m+1):
        for j in range(n-m+1):
            temp = 0
            for a in range(i, i+m):
                for b in range(j, j+m):
                    temp += arr[a][b]
            if temp > fly:
                fly = temp

    print("#%d" % (case+1), fly)

설명

 

첫번째 2중 for문은 (0, 0)부터 (n+m-1, n+m-1)까지 각 좌표를 돌면서 최대의 파리 개수를 찾는다.

 

두번째 2중 for문은 m만큼 돌면서 해당 좌표에서 파리채를 내려쳤을때 잡을 수 있는 파리의 개수를 계산한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함