인프런 커뮤니티 질문&답변
질문드립니다.
작성
·
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]값이 봉우리가 되는 것입니다.






감사합니다.