인프런 커뮤니티 질문&답변
리뷰 부탁드립니다.
작성
·
276
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 - 1) right = 0;
if (i % (n) === 0) left = 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차원 배열로 공부하시기 바랍니다.
위에 코드 검증은 스스로 해보시기 바랍니다. 저도 확신있게 말해 줄 수 없을 것 같네요.






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