인프런 커뮤니티 질문&답변
질문이 있습니다!
작성
·
246
0
if(nx >= 0 && ny >= 0 && nx<n && ny<n && arr[nx][ny] < arr[i][j]) {
count += 1;
}
arr[i][j]의 값이 더 클 때만 count +=1 해도 상관없는거 아닌가요?!
꼭 flag가 있어야 하는건가요?????
퀴즈
배열을 순회하며 이전에 나온 모든 수보다 큰 수들의 개수를 효율적으로 세는 방법은 무엇일까요?
배열을 정렬한 후 앞에서부터 순서대로 센다.
현재까지 나타난 수들 중 최대값을 기록하며 순회한다.
각 수를 배열의 모든 다른 수와 비교하여 개수를 센다.
배열의 첫 번째 수만 확인하여 결정한다.
답변 1
0
저도 이렇게 생각해서 오답을 냈었어요.
콘솔로그 쳐보니, 중복적으로 값이 들어가네요.
예를 들면 arr[0][4]가 봉우리인지 확인할 때, 비교하는 값들(nx , ny) 중, if문에 참으로 속하는 것들을 다 카운트해버려요. arr[1][4] 과 arr[0][3] 각각 반복문으로 돌며 비교하기 때문에 카운트가 2번 됩니다.





