📌문제


📌나의 코드
T = int(input())
dx_T = [0, 0, -1, 1]
dy_T = [-1, 1, 0, 0]
dx_X = [1, 1, -1, -1]
dy_X = [-1, 1, -1, 1]
def in_range(x, y):
return 0 <= x < n and 0 <= y < n
def count_fries(curr_x, curr_y, dir_x, dir_y):
cnt = grid[curr_x][curr_y]
for x, y in zip(dir_x, dir_y):
for i in range(1, m):
nx, ny = curr_x + x * i, curr_y + y * i
if in_range(nx, ny):
cnt += grid[nx][ny]
return cnt
def find_max_kill(gr_x, gr_y):
maxKill[gr_x][gr_y] = max(count_fries(gr_x, gr_y, dx_T, dy_T),
count_fries(gr_x, gr_y, dx_X, dy_X))
for test_case in range(1, T + 1):
n, m = map(int, input().split())
grid = [list(map(int, input().split())) for _ in range(n)]
s_x, s_y = 0, 0
maxKill = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(n):
find_max_kill(i, j)
answer = 0
for i in range(n):
for j in range(n):
if answer < maxKill[i][j]:
answer = maxKill[i][j]
print(f'#{test_case} {answer}')