작성
·
307
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 인턴이에요.
nx < n과 ny < n은 각각 nx와 ny가 n보다 작은지를 확인하는 조건문입니다. 이 조건문은 배열의 인덱스 범위를 벗어나지 않도록 체크하기 위한 것입니다.
일반적으로 배열의 인덱스는 0부터 시작하기 때문에, nx와 ny가 n보다 작을 때에만 배열 접근 연산을 수행하도록 하는 것입니다. 만약 nx >= n 또는 ny >= n이라면 배열의 범위를 벗어나므로 에러가 발생할 수 있습니다.
따라서 nx < n과 ny < n은 배열 접근 연산을 안전하게 수행하기 위한 조건문으로 이해하시면 됩니다.
더 궁금한 점이 있다면 언제든지 물어보세요!