강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

댕댕님의 프로필 이미지
댕댕

작성한 질문수

웹 게임을 만들며 배우는 React

8-6. 빈 칸들 한 번에 열기

지뢰찾기 클릭한 셀 주변을 검사하는 checkAround 함수 질문있습니다

작성

·

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 알고리즘이 있습니다.

댕댕님의 프로필 이미지
댕댕

작성한 질문수

질문하기