최대 n의 크기가 100 이하고, 하나의 result를 확인하는 데는 9개의 셀이 필요하므로 짧은 시간 내에 전체를 전부 브루트포스로 해결해 볼 수 있다. 간단하게 구현만 하면 되는 문제.
풀이 코드(Python)
class Solution:
def largestLocal(self, grid: List[List[int]]) -> List[List[int]]:
n = len(grid)
answer = [[0]*(n-2) for _ in range(n-2)]
for i in range(n-2) :
for j in range(n-2) :
maxval = 0
for k in range(i, i+3) :
for l in range(j, j+3) :
maxval = max(maxval, grid[k][l])
answer[i][j] = maxval
return answer
풀이 코드(Go)
func largestLocal(grid [][]int) [][]int {
n := len(grid)
result := [][]int{}
for i := 0; i < n-2; i++ {
result = append(result, []int{})
for j := 0; j < n-2; j++ {
tmp := 0
for k := i; k < i+3; k++ {
for l := j; l < j+3; l++ {
if tmp < grid[k][l] {
tmp = grid[k][l]
}
}
}
result[i] = append(result[i], tmp)
}
}
return result
}