문제
N*N 격자판에 지도가 주어질 때 각 격자에는 그 지역의 높이가 쓰여있다.
각 격자판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역이다.
격자의 가장자리는 0으로 초기화 되었다고 가정한다.
봉우리 지역이 몇 개 있는지 출력
격자판의 숫자는 (1 <= N <= 50)의 자연수
풀이 과정
상하좌우 확인 조건 : ex) i = 2, j = 2
(1, 2) (i - 1, j)
(1, 2) (2, 2) (2, 3) -> (i - 1, j) (i, j) (i + 1, j)
(3, 2) (i + 1, j)
const solutionA = (grid) => {
let answer = 0;
const length = grid.length;
const Xaxis = [-1, 1, 0, 0];
const Yaxis = [0, 0, -1, 1];
for (let i = 0; i < length; i++) {
for (let j = 0; j < length; j++) {
const currentNumber = grid[i][j];
let visited = true;
for (let k = 0; k < Xaxis.length; k++) {
const x = i + Xaxis[k];
const y = j + Yaxis[k];
if (grid[x] && grid[x][y] >= currentNumber) {
visited = false;
break;
}
}
if (visited) answer++;
}
}
return answer;
};
const testA = solutionA([
[5, 3, 7, 2, 3],
[3, 7, 1, 6, 1],
[7, 2, 5, 3, 4],
[4, 3, 6, 4, 1],
[8, 7, 3, 5, 2],
]);
console.log(testA);
틀린 부분이 있거나 보충해야 할 내용이 있다면 댓글이나 DM(sungstonemin)으로 알려주시면 감사하겠습니다😄