출석부!
배열을 공부하면서 출석부가 떠올랐다. 매년 출석부에는 적게는 몇명에서 많게는 수십명에 이르는 학생들의 이름이 기입된다. 출석부에는 각자의 이름이 기입되지만 각자의 번호가 기입되기도 한다.
물론 나의 개념을 배열에 1대 1로 적용하기엔 오류가 있을 수 있지만, 배열은 0번 부터 시작하는 출석부라고 생각하면 좀 더 접근이 쉬울 것 같다.
배열을 사용하는 이유
1학년 1반을 가르치는 두명의 선생님이 있다. 한 선생님은 출석부에 학생의 번호와 이름을 정렬해놓았다.
다른 선생님은 학생의 이름과 번호를 포스트잇에 적어 책상 앞에 순서대로 나란히 붙여놓았다.
누가 더 간단하고 보기에 간결할까? 당연히 출석부다.
배열은 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 뜻한다.
즉, 1학년 1반 학생들이 모여 1학년 1반이라는 학급이 형성되듯이 연관성있는 타입, 값이 모이면 그것들을 하나로 묶을 수 있으며 우리는 그것을 배열이라고 한다.
배열이 이러한 특징을 갖는 이유를 이해하기 위해서는 메모리에 대한 이해가 필요하다.
배열을 선언하고 배열을 초기화하면 다음과 같은 메모리에 그 값이 저장된다. 우리는 이러한 배열의 값을 요소라고 부르고 배열의 각 요소가 부여받는 순번을 인덱스라고 부른다. 또한 인덱스는 0부터 시작된다. 즉, 31개의 요소를 가지고 있는 배열의 첫번째 요소의 인덱스는 0이며 마지막 요소는 31그리고 그 요소의 인덱스는 30이다.
배열의 차원
차원은 배열의 중첩을 뜻한다. 1차원의 배열은 배열이 중첩이 없는 것이고 배열의 요소가 배열이 아니다. 대표적으로 출석부를 떠올리자.
2차원 배열은 배열이 중첩된 것이다. 즉, 배열의 요소가 배열인 경우다. ex) {{1,2,3,4}, [5,6,7,8]}
'CS > Data Structure' 카테고리의 다른 글
[ 자료구조 ] 맵(Map)이란 무엇일까? (0) | 2022.09.13 |
---|---|
[ 자료구조 ] 셋(Set)이란 무엇일까? (0) | 2022.09.13 |
[ 자료구조 ] 이터레이터(Iterator)란 무엇일까? (0) | 2022.09.13 |
[ 자료구조 ] 리스트 (List)란 무엇일까? (0) | 2022.09.13 |
[ 자료구조 ] 컬렉션 프레임워크(Collection Framework)란 무엇일까? (0) | 2022.09.13 |