-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
지뢰찾기 클릭한 셀 주변을 검사하는 checkAround 함수 질문있습니다
23.04.24 13:54 작성 조회수 266
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로 해당 코드들만 걸러내서 괜찮은건 알겠는데
어느정도 큰 규모의 프로젝트에서 이렇게하면 낭비되는 메모리는 없는지, 일일히 다 체크해줘야 하는지 궁금합니다!
답변을 작성해보세요.
0
조현영
지식공유자2023.04.24
around = around.concat( tableData[row][cell - 1], tableData[row][cell + 1] );
이게 좌우 체크입니다.
실제로는 더 효율적인 bfs 알고리즘이 있습니다.
답변 1