지뢰찾기는 숫자 힌트를 이용해 지뢰를 찾아야 하는 인기 있는 게임이에요. 숫자 힌트는 어떤 칸을 기준으로 가로, 세로, 대각선으로 바로 인접한 칸에 지뢰가 몇 개 있는지 알려줘요.
완성된 지뢰찾기 보드에서 빈 칸에 지뢰 개수를 채워 넣는 것이 과제예요.
보드는 각 칸이 비어 있거나(' ') 지뢰('*')인 직사각형이에요.
빈 칸마다 가로, 세로, 대각선으로 인접한 지뢰의 개수를 세요. 인접한 지뢰가 없으면 그 칸은 비워 둬요. 그렇지 않으면 인접한 지뢰 개수로 바꿔요.
예를 들어, 다음과 같은 5 x 4 보드를 받을 수 있어요 (여기서 빈 칸은 화면에 표시하기 위해 '·' 문자로 나타냈어요):
·*·*·
··*··
··*··
·····
코드가 변환해야 하는 결과는 다음과 같아요:
1*3*1
13*31
·2*2·
·111·
지뢰밭은 문자열로 표현하며, 각 행의 끝에는 줄바꿈 문자가 있어요.
예를 들면 " \n * \n \n" 같은 문자열이에요.
입력 문자열을 담는 버퍼는 선형 메모리의 64번부터 319번까지의 바이트를 사용해요.
입력 문자열은 원한다면 제자리에서 수정할 수도 있어요.
Exercism에 가입하고 WebAssembly 트랙을 연습 문제 87개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.
중첩된 `for`문, 경계 검사를 단순하게 만드는 min/max의 영리한 활용, 함수형 파이프라인, 그리고 2차원 행렬 사용법을 살펴봐요.