알고리즘 공부/파이썬(Python)

SWEA 12712번 D2 파리퇴치3 파이썬

마달랭 2024. 6. 26. 16:59
반응형

리뷰

출력을 할때 콤마를 하나 넣어서 Fail이 되었다. 쩝

문제 풀이

  1. +와 x방향 분사가 가능하기에 벌레 퇴치 수에 대한 변수를 2개 사용해 주었다. 각각 변수1, 변수2로 가정
  2. 현재 위치에서 상하좌우로 m만큼 떨어진 공간에 스프레이를 뿌릴 수 있다면 해당 공간의 파리 수를 변수1에 더하기
  3. 2번과 마찬가지로 대각으로 m만큼 떨어진 공간에 스프레이를 뿌릴 수 있다면 해당 공간의 파리 수를 변수2에 더하기
  4. 미리 초기화 해둔 result 변수와 최대값을 비교하고 더 큰 수가 있다면 result에 저장해 준다.
  5. 테스트 케이스 번호와 함께 result값을 출력해 주면 된다.

참고 사항

출력할때는 신중히 하자..

정답 코드

def q12712():
    # SWEA 12712번 D2 파리퇴치3 파이썬
    t = int(input())
    for i in range(1, t + 1):
        n, m = map(int, input().split())
        lst = [list(map(int, input().split())) for _ in range(n)]
        result = 0
        for j in range(n):
            for k in range(n):
                temp1 = 0
                temp2 = 0
                for l in range(-m + 1, m):
                    if 0 <= j + l < n:
                        temp1 += lst[j + l][k]
                    if 0 <= k + l < n:
                        temp1 += lst[j][k + l]
                    if 0 <= j + l < n and 0 <= k + l < n:
                        temp2 += lst[j + l][k + l]
                    if 0 <= j - l < n and 0 <= k + l < n:
                        temp2 += lst[j - l][k + l]
                temp1 -= lst[j][k]
                temp2 -= lst[j][k]
                result = max(result, temp1, temp2)
        print(f'#{i} {result}')
q12712()
728x90
반응형