본문 바로가기
개발공부 일지/코테

사방면보다 큰수의 갯수 구하기

by Box Cat 2023. 6. 26.
728x90
반응형

 5*5 격자판이 주어집니다. 각 격자에는 숫자가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자의 갯수를 구하는 프로그램을 작성하세요. 격자의 가장자리는 0으로 초기화 되었다고 가정한다.

0000000

0537230

0371610

0725340

0436410

0873520

0000000

 

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));
728x90
반응형

댓글