지뢰찾기는 숫자 힌트를 이용해 지뢰를 찾아야 하는 인기 있는 게임이에요. 숫자 힌트는 어떤 칸을 기준으로 가로, 세로, 대각선으로 바로 인접한 칸에 지뢰가 몇 개 있는지 알려줘요.
완성된 지뢰찾기 보드에서 빈 칸에 지뢰 개수를 채워 넣는 것이 과제예요.
보드는 각 칸이 비어 있거나(' ') 지뢰('*')인 직사각형이에요.
빈 칸마다 가로, 세로, 대각선으로 인접한 지뢰의 개수를 세요. 인접한 지뢰가 없으면 그 칸은 비워 둬요. 그렇지 않으면 인접한 지뢰 개수로 바꿔요.
예를 들어, 다음과 같은 5 x 4 보드를 받을 수 있어요 (여기서 빈 칸은 화면에 표시하기 위해 '·' 문자로 나타냈어요):
·*·*·
··*··
··*··
·····
코드가 변환해야 하는 결과는 다음과 같아요:
1*3*1
13*31
·2*2·
·111·
x, y 좌표는 흔히 Point로 표현하는데, 그러면 이 문제를 푸는 데 도움이 되는 유용한 Point 함수들을 활용할 수 있어요. 또는 2차원 배열로 표현하는 것도 유용해요. 어느 쪽이든, 의미를 잘 드러내는 확장 메서드를 몇 개 정의해 두면 풀이가 훨씬 읽기 쉽고 우아해져요.