• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

봉우리문제에서 이해가되지않는부분이있습니다

23.04.07 21:34 작성 23.04.07 21:36 수정 조회수 251

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

받은 행렬은 0으로 초기화 한 가장자리가없는데 왜 그러한 행렬을 만들어주는 작업이 없는거죠?? 잘 이해가 되지않습니다.. 가장자리는 무조건 작다 라고 하는거도 이해가되는데 없는 행렬을 어떻게 비교할수있는지 모르겠습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요^^

아래 코드는 k for 문이 4번 반복하면서 인접한 4방향의 값과 arr[i][j]값과 비교해서 인접한 4방향의 값 arr[nx][ny]가 arr[i][j]보다 크거나 같은 값이 하나라도 존재한다면 arr[i][j]는 봉우리가 아니라고 판단하는 코드입니다.

if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]){
	flag=false;
	break;
}

위에 nx>=0 && nx<n && ny>=0 && ny<n 코드가 4방향의 값 중 가장 자리는 arr[i][j]와 비교하지 않게 하고 있습니다.

arr[nx][ny]가 가장자리이면 arr[i][j]보다 무조건 작다고 가정하기 때문에 arr[i][j]보다 크거나 같은지 확인하는 비교연산에서 빼버리는 것입니다.