728x90
반응형
Minesweeper 게임의 보드를 생성하는 것입니다. 게임 보드는 몇 개의 지뢰와 지뢰를 포함하지 않은 셀들로 이루어져 있으며, 지뢰를 포함하지 않은 각 셀에는 해당 셀의 주변에 있는 지뢰의 총 개수가 표시되어야 합니다.
주어진 행렬 matrix는 지뢰가 있는 곳을 true로, 지뢰가 없는 곳을 false로 나타냅니다. 이 행렬을 기반으로 Minesweeper 게임의 초기 설정을 만들어야 합니다.
int[][] solution(bool[][] matrix) {
int[][] ret = new int[matrix.Length][];
int[] px = {-1, 0, 0, 1, -1, -1, 1, 1};
int[] py = {0, -1, 1, 0, -1, 1, -1, 1};
for(int i = 0; i < matrix.Length; i++) {
ret[i] = new int[matrix[0].Length];
}
for(int i = 0; i < matrix.Length; i++) {
for(int j = 0; j < matrix[0].Length; j++) {
int count = 0;
for(int k = 0; k < 8; k++) {
int ni = i + px[k];
int nj = j + py[k];
if(ni >= 0 && ni < matrix.Length && nj >= 0 && nj < matrix[0].Length) {
if(matrix[ni][nj]) {
count++;
}
}
}
ret[i][j] = count;
}
}
return ret;
}
px와 py 배열은 각각 행과 열의 이동을 나타냅니다. 주변 8방향으로 이동하기 위해 사용됩니다.
ret 배열은 결과를 저장할 배열로, 지뢰의 개수를 담을 예정입니다.
먼저, ret 배열을 초기화합니다.
중첩된 두 개의 반복문을 사용하여 주어진 matrix의 각 셀에 대해 주변 지뢰의 개수를 계산합니다.
내부 반복문에서는 현재 셀의 상하좌우 및 대각선에 있는 셀들을 검사하여 지뢰가 있는지 확인하고, 있다면 count를 증가시킵니다.
외부 반복문에서 각 셀에 대한 주변 지뢰의 개수를 계산하여 ret 배열에 저장합니다.
최종적으로 완성된 ret 배열을 반환합니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
variableName (0) | 2023.12.16 |
---|---|
evenDigitsOnly (0) | 2023.12.15 |
Box Blur (0) | 2023.12.12 |
avoidObstacles (0) | 2023.12.12 |
arrayMaximalAdjacentDifference (0) | 2023.12.11 |