강의

멘토링

로드맵

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

seal님의 프로필 이미지
seal

작성한 질문수

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

7. 봉우리

질문드립니다.

작성

·

180

1

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]];

위의 배열 기준 arr[3][4] 값이 1인데, 저 1 값 기준 상하좌우 중 제일 큰 값이 4입니다. 그러면 위쪽, 왼쪽이 모두 봉우리가 되어서 왼쪽의 4도 봉우리가 되어야하는거 아닌가요?
또한 arr[3][1]의 값은 3이고, 저 값 기준 상하좌우 중 제일 큰 값이 7입니다. 그런데 봉우리로 지정이 안되어있습니다.
혹시 왜그런지 알려주실수 있을까요??

퀴즈

64%나 틀려요. 한번 도전해보세요!

배열을 순회하며 이전에 나온 모든 수보다 큰 수들의 개수를 효율적으로 세는 방법은 무엇일까요?

배열을 정렬한 후 앞에서부터 순서대로 센다.

현재까지 나타난 수들 중 최대값을 기록하며 순회한다.

각 수를 배열의 모든 다른 수와 비교하여 개수를 센다.

배열의 첫 번째 수만 확인하여 결정한다.

답변 1

1

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

안녕하세요^^

어떤 좌표의 값이 봉우리가 되기 위해서는 자신의 상하좌우 값보다 커야 자신이 봉우리가 되는 것입니다.

즉 arr[3][3]의 4의 값이 봉우리가 되기 위해서는 arr[2][3]값, arr[3][4]값,  arr[4][3]값,  arr[3][2]값 이 4개의 값보다 커야  arr[3][3]값이 봉우리가 되는 것입니다.

seal님의 프로필 이미지
seal
질문자

감사합니다.

seal님의 프로필 이미지
seal

작성한 질문수

질문하기