코딩테스트/JavaScript
[코딩테스트] 봉우리
CODE_PLAN
2023. 12. 22. 22:34
나의 풀이
function solution(arr) {
let n = arr.length;
let num = 0;
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
if (arr[i][j] > arr[i][j + 1]) {
num++;
}
}
}
return num;
}
if (arr[i][j] > arr[i + 1][j]) {
num++;
}
//
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));
</script>
우선 아직 알고리즘을 많이 안해봐서 그런지 풀이법이 잘 떠오르지 않았었다.
&& 를 사용해서 조건을 넣어주는것도 오류가 나와서 멘붕..
해설 풀이
function solution(arr){
let answer=0;
let n=arr.length;
let dx=[-1, 0, 1, 0];
let dy=[0, 1, 0, -1];
for(let i=0; i<n; i++){
for(let j=0; j<n; j++){
let flag=1;
for(let k=0; k<4; k++){
let nx=i+dx[k];
let ny=j+dy[k];
if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]){
flag=0;
break;
}
}
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));
풀이 핵심1) dx, dy를 잡고 let nx, ny를 사용해서 위치를 이동하면서 탐색하는것
풀이 핵심2) 또한 밖으로 나가지 않게 >=0 , <n 이런식으로 범위를 설정해줘야한다