[코딩테스트연습] 봉우리
코드
function solution(arr){
let answer=0;
let n=arr.length;
let dx=[-1, 0, 1, 0];
let dy=[0, 1, 0, -1];
//이중포문 돌면서 2차원배열 탐색
for(let i=0; i<n; i++){
for(let j=0; j<n; j++){
//현재 칸이 봉우리인지 확인하는 변수
let flag=true;
//현재 칸의 상하좌우 값 탐색
for(let k=0; k<4; k++){
let nx=i+dx[k];
let ny=j+dy[k];
//nx,ny 가 0보다 크면서 (테두리가 아님) 상하좌우값이 현재칸보다 같거나 크면
if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]){
//현재 칸은 봉우리가 아님
flag=false;
break;
}
}
//봉우리일때 + 1
if(flag) answer++;
}
}
return answer;
}
let arr=[[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(solution(arr));