작성
·
454
0
const checkAround = (row, cell) => {
let around = [];
if (tableData[row - 1]) {
around = around.concat(
tableData[row - 1][cell - 1],
tableData[row - 1][cell],
tableData[row - 1][cell + 1]
);
}
around = around.concat(
tableData[row][cell - 1],
tableData[row][cell + 1]
);
if (tableData[row + 1]) {
around = around.concat(
tableData[row + 1][cell - 1],
tableData[row + 1][cell],
tableData[row + 1][cell + 1]
);
}
해당 함수에서 8방향 체크를 할 때 먼저 윗줄과 아랫줄이 존재하는지 확인하는데
좌우 체크는 굳이 안해도 되는건가요?
해당 강좌에서는 concat 후 filter로 해당 코드들만 걸러내서 괜찮은건 알겠는데
어느정도 큰 규모의 프로젝트에서 이렇게하면 낭비되는 메모리는 없는지, 일일히 다 체크해줘야 하는지 궁금합니다!
답변 1
0
around = around.concat( tableData[row][cell - 1], tableData[row][cell + 1] );
이게 좌우 체크입니다.
실제로는 더 효율적인 bfs 알고리즘이 있습니다.