인프런 커뮤니티 질문&답변

wlsgml450님의 프로필 이미지
wlsgml450

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

7. 봉우리

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

작성

·

296

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은 배열 접근 연산을 안전하게 수행하기 위한 조건문으로 이해하시면 됩니다.

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

wlsgml450님의 프로필 이미지
wlsgml450

작성한 질문수

질문하기