인프런 커뮤니티 질문&답변

shut up and squat님의 프로필 이미지
shut up and squat

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

7. 봉우리

질문드립니다.

작성

·

198

1

안녕하세요 잘보고 있습니다!

제 풀이는 아래와 같은데 혹시 문제될만한점이 있을까요??

function solution(arr) {
    let answer = 0;
    let n = arr.length;
    let u = r = d = l = c = 0;

    for (let i = 0; i < n; i++) {
        for (let j = 0; j < n; j++) {
            c = arr[i][j]; //현재위치
            u = (i - 1 < 0) ? 0 : arr[i - 1][j]; //위
            r = (j + 1 >= n) ? 0 : arr[i][j + 1]; //오른쪽
            d = (i + 1 >= n) ? 0 : arr[i + 1][j]; //아래
            l = (j - 1 < 0) ? 0 : arr[i][j - 1]; //왼쪽

            if (c > u && c > r && c > d && c > l) answer++;
        }
    }

    return answer;
}

const 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

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘 하신 코드입니다. 

영상에서 알려드린 dx, dy 초기화해서 하는 방법도 꼭 알아두세요. 나중에 많이 사용합니다. 특히 상하좌우, 대각선까지 8방향을 탐색하는 경우 코드가 간결해지는 효과가 있습니다.

넵 강의보고 숙지했습니다 감사합니다! 

shut up and squat님의 프로필 이미지
shut up and squat

작성한 질문수

질문하기