지뢰찾기

WooBuntu·2020년 8월 30일
0

JS 100제

목록 보기
16/34

지뢰찾기

let flag = [
  [0, 1, 1, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 1, 0],
  [0, 0, 1, 0, 0],
  [0, 0, 0, 0, 0],
];
function findingMine(flag) {
  for (let row = 0; row < flag.length; row++) {
    for (let col = 0; col < flag[0].length; col++) {
      let current = flag[row][col];
      let left = col >= 1 ? flag[row][col - 1] : undefined;
      let right = col < flag.length - 1 ? flag[row][col + 1] : undefined;
      let top = row >= 1 ? flag[row - 1][col] : undefined;
      let bottom = row < flag.length - 1 ? flag[row + 1][col] : undefined;

      function checkStar(direction, row, col) {
        direction == 0 ? (flag[row][col] = "*") : undefined;
      }

      if (current == 1) {
        flag[row][col] = "f";

        checkStar(left, row, col - 1);
        checkStar(right, row, col + 1);
        checkStar(top, row - 1, col);
        checkStar(bottom, row + 1, col);
      }
    }
  }
  return flag.map((row) => row.join("")).join("\n");
}
  • 만약에 입력을 행렬 형식이 아니라 문자열 형식으로 한줄로 받는다면 split을 활용해서 행렬로 만들어주거나 row길이를 고려하여 인덱스의 규칙을 찾아내면 된다.

0개의 댓글