학습
시험

지뢰찾기 지도

난이도
BEGINNER

문제 설명

N × M 크기의 -1(지뢰)과 0(빈칸)으로만 이루어진 지뢰 위치 정보 mines가 주어졌을 때 아래 규칙에 따라 완성된 지뢰 찾기 지도를 반환하는 solution 함수를 작성하시오.

규칙

  1. 지뢰가 위치한 칸은 -1로 채웁니다.
  2. 빈칸에는 상하좌우 및 대각선을 포함한 8방향 이웃에 존재하는 지뢰가 몇 개인지 세고, 해당 칸에 그 숫자를 채웁니다.
  3. 8방향 이웃 중에서 지도를 벗어나는 방향에 대해서는 지뢰가 없다고 간주합니다.

제한 사항

  • mines는 N ×\times M 크기의 이차원 정수 배열입니다.
  • N(mines의 행 개수)은 2 이상 1,000 이하의 자연수입니다.
  • M(mines의 열 개수)은 2 이상 1,000 이하의 자연수입니다.
  • mines의 각 원소는 -1(지뢰) 또는 0(빈칸) 인 정수입니다.

예시 테스트케이스 설명

테스트케이스 번호 mines return
1 [[0, -1, 0],[0, 0, 0],[-1, 0, 0]] [[1, -1, 1],[2, 2, 1],[-1, 1, 0]]
2 [[-1, -1],[-1, -1]] [[-1, -1],[-1, -1]]
4 [[0, 0],[0, 0]] [[0, 0],[0, 0]]

1번 테스트케이스 설명

  • 위치별 지뢰 찾기 지도의 값은 아래와 같이 계산됩니다.

    위치 빈칸 여부 주변 지뢰 위치 지도에 작성되어야 하는 값
    (0,0) ✅ (0,1) 1
    (0,1) ❌ - -1
    (0,2) ✅ (0,1) 1
    (1,0) ✅ (0,1), (2,0) 2
    (1,1) ✅ (0,1), (2,0) 2
    (1,2) ✅ (0,1) 1
    (2,0) ❌ - -1
    (2,1) ✅ (2,0) 1
    (2,2) ✅ - 0
  • 따라서 [[1, -1, 1],[2, 2, 1],[-1, 1, 0]] 을 반환해야 합니다.

2번 테스트케이스 설명

  • 위치별 지뢰 찾기 지도의 값은 아래와 같이 계산됩니다.

    위치 지뢰 여부 주변 지뢰 위치 지도에 작성되어야 하는 값
    (0,0) ❌ - -1
    (0,1) ❌ - -1
    (1,0) ❌ - -1
    (1,1) ❌ - -1
  • 따라서 [[-1, -1],[-1, -1]] 을 반환해야 합니다.

3번 테스트케이스 설명

  • 위치별 지뢰 찾기 지도의 값은 아래와 같이 계산됩니다.

    위치 빈 칸 여부 주변 지뢰 위치 지도에 작성되어야 하는 값
    (0,0) ✅ - 0
    (0,1) ✅ - 0
    (1,0) ✅ - 0
    (1,1) ✅ - 0
  • 따라서 [[0, 0],[0, 0]] 을 반환해야 합니다.