https://school.programmers.co.kr/learn/courses/30/lessons/120866
let n = board.length;
let answer = 0;
for (let x = 0; x < n; x++) {
for (let y = 0; y < n; y++) {
if (board[x][y] == 1) {
for (let i = x - 1; i <= x + 1; i++) {
for (let j = y - 1; j <= y + 1; j++) {
if (board[i]?.[j] == 0) {
board[i][j] = 2;
}
}
}
}
}
}
board.forEach((v, i) => {
answer += v.reduce((a, b) => a + (b == 0), 0);
});
return answer;
}
코딩테스트에는 통과하였으나 반복문이 4번이나 중첩되어 코드가 지저분하였고 0단계인 문제를 이렇게 복잡하게 푸는게 맞나 싶어서 다른 사람의 풀이를 찾아 보았다.
일단 forEach를 쓰니 훨씬 간결해졌고 밑의 부분은
보고도 이해가 잘 가지 않아서 chatGPT에 해석을 부탁해보았다.