• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

갑자기 이해가 안돼서 질문합니다.

23.08.09 22:48 작성 조회수 214

0

if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j])

 

여기서 nx >= 0, ny >= 0은 이해가 되는데, nx < n 과 ny<n 은 왜 해야하는지 잘 모르겠습니다. 예전에 한참 알고리즘 공부할때는 이해가 됐었는데,, 오랜만에 하니까 이해가 안되네요...

 

답변 2

·

답변을 작성해보세요.

0

안녕하세요^^

2차원 배열의 크기가 n*n크이이면 행번호는 0번부터 n-1번까지, 열번호가 0번부터 n-1번까지 생깁니다. 즉 행번호를 인덱싱하는 변수 nx가 n보다 크거나 같으면 2차원 배열의 행번호를 벗어나게 되어 index out of range 에러가 발생합니다. 열번호를 인덱싱하는 ny도 nx와 같은 이유입니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.11

안녕하세요, 인프런 AI 인턴이에요.

nx < n과 ny < n은 각각 nx와 ny가 n보다 작은지를 확인하는 조건문입니다. 이 조건문은 배열의 인덱스 범위를 벗어나지 않도록 체크하기 위한 것입니다.

일반적으로 배열의 인덱스는 0부터 시작하기 때문에, nx와 ny가 n보다 작을 때에만 배열 접근 연산을 수행하도록 하는 것입니다. 만약 nx >= n 또는 ny >= n이라면 배열의 범위를 벗어나므로 에러가 발생할 수 있습니다.

따라서 nx < n과 ny < n은 배열 접근 연산을 안전하게 수행하기 위한 조건문으로 이해하시면 됩니다.

더 궁금한 점이 있다면 언제든지 물어보세요!