깨알 개념/Algorithm

배열의 길이(length)와 원소의 순번(index)

interfacer_han 2023. 11. 1. 14:04

#1 알고리즘

#1-1

 

#1-2

자바에서, 배열을 선언할 때는 '갯수'를 이용한다. 다음 자바 코드를 보자. 자바는 0-based indexing을 사용한다.

int[] array = new int[5]; // 5는 0-based index의 최댓값 혹은 1-based index의 최댓값도 아닌 그저 '갯수'다

array[2] = 789; // 2는 '순번'이다.

배열을 선언할 때 [ ] 자리에 들어가는 숫자는 '갯수'를 의미한다. 배열에 접근할 때 쓰는 [ ] 속에 들어가는 숫자가 '순번'인 것과 달리 말이다. 이를 구분하지 못하면, "0-based indexing을 쓰는 언어일지라도 선언할 때만큼은 1-based indexing을 쓰나?" 와 같은 오해가 생긴다.

 

#1-3

'순번' 과 '갯수'는 서로 다른 개념이지만, 수의 범위가 0 이상의 정수로 똑같다. 또, 배열에서 순번(index)의 최댓값은 갯수(length)보다 1만큼 작거나 (0-based indexing), 갯수와 같다는 (1-based indexing) 논리적인 조건이 있기 때문에 다음과 같은 코드를 쓸 수 있다.

for(int index = 0; index < array.length(); index++) {
    // ...
}

 

#2 요약

'순번'과 '갯수'는 서로 다른 개념이다. 하지만, 수의 범위가 서로 같다. 따라서, 논리적인 조건만 충족한다면 섞어서 같이 쓸 수 있다.