
1로 표시되어있는 지뢰 지역과 인접한 위험지역은 다른 역할로 분리할 수 있는 방법 찾기 (연속으로 있는 지뢰 지역을 이전의 지뢰 지역의 위험지역이 아닌 또 다른 지뢰지역으로 인식해야 하므로)
배열 밖을 벗어날 때 ArrayIndexOutofBoundsException 이 발생하지 않고 다음 순회로 넘어가도록 하는 방법 찾기
(먼저 알아내야 할 것)
현재 위치가 board[i][j] 일 때, 탐색해야 하는 범위는 i-1 ~ i+1, j-1 ~ j+1 입니다.
(첫 번째 방법) Math.max(), Math.min() 메소드 사용
0보다 작은 인덱스가 오면 0을 반환하도록 하고, 배열에서 가장 큰 자리의 인덱스보다 더 큰 값이 오면 배열의 마지막 자리를 반환하도록 설정합니다. 그래서 자기 자신이 아닌지와 이미 1이 채워져있는지를 체크하여 아닐 때만 2로 채웁니다.
(두 번째 방법) continu문 사용
그림으로 그려보았더니 행 또는 열이 첫 줄 이전으로 벗어나는 경우와 마지막 줄 이후로 벗어나는 경우 총 두 가지 경우가 있음을 발견했습니다.
psudo code
if (행 < 0 || 행 >= board.length) continue;
if (열 < 0 || 열 >= board.length) continue;
위와 같이 continue 키워드를 사용하여 조건문에 해당하면 다음 순회로 넘어가도록 설정했습니다.
참고