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

학생1님의 프로필 이미지
학생1

작성한 질문수

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

7. 봉우리

리뷰 부탁드립니다.

작성

·

242

1

안녕하세요. 1차원 배열로 만들어서 O(n)이 되도록 풀어봤는데 테스트 케이스가 없어서 답이 정확한지 확신이 가질 않습니다. 로직에 오류가 없는지 한번 확인해주시면 감사하겠습니다.

function solution(n, arr) {

  let count = 0;
  for (let i = 0; i < arr.length; i++) {
    let top = arr[i - n? arr[i - n: 0;
    let left = arr[i - 1? arr[i - 1: 0
    let right = arr[i + 1? arr[i + 1: 0
    let bottom = arr[i + n? arr[i + n: 0

    // 배열의 양 끝인 경우
    if (i % (n=== n - 1right = 0;
    if (i % (n=== 0left = 0;

    if (arr[i> Math.max(top, left, right, bottom)) count++
  }
  return count
}

console.log(solution(5, [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(4, [9, 3, 7, 4, 2, 4, 3, 3, 1, 8, 2, 7]))
console.log(solution(3, [1, 1, 1, 1, 1, 1, 1, 1, 1]))

답변 1

1

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

안녕하세요^^

봉우리 문제는 2차원 배열의 4방향 탐색을 공부하기 위해 만든 문제이니 2차원 배열로 공부하시기 바랍니다.

위에 코드 검증은 스스로 해보시기 바랍니다. 저도 확신있게 말해 줄 수 없을 것 같네요.

학생1님의 프로필 이미지
학생1
질문자

몇번 시도해 보아도 오류는 없는것 같습니다 . 의도에 맞게 다시 풀어봐야겠네요. 감사합니다

학생1님의 프로필 이미지
학생1

작성한 질문수

질문하기