- 2차원 배열은 행과 열을 가지며, 1차원 배열과 달리 두 개의 인덱스로 요소에 접근합니다. 📊
- 배열 초기화 시 시간 및 공간 복잡도는 행 수(n)와 열 수(m)의 곱인 O(n*m)입니다. ⏳
- 특정 요소에 접근하거나 값을 수정하는 작업은 인덱스를 직접 사용하므로 O(1)의 상수 시간 복잡도를 가집니다. ⚡
- 배열 내 특정 값을 탐색하는 작업은 모든 요소를 순회해야 할 수 있어 O(n*m)의 시간 복잡도를 가집니다. 🔍
- 2차원 배열의 순회는 행 기준(O(n)), 열 기준(O(m)), 또는 전체(O(n*m))로 가능합니다. 🚶
- 파이썬과 자바에서는 중첩된 배열/리스트 형태로 2차원 배열을 구현하며, 접근 및 수정 문법은
arr[행][열] 형태입니다. 💻
- C/C++와 같은 언어에서는 2차원 배열이 메모리상에 연속적으로 배치되지만, 자바는 바깥 배열이 내부 배열들의 주소를 저장하는 방식이라 '가변 배열(jagged array)' 생성이 가능합니다. 🧩
- 언어의 내부 구현 방식을 이해하면 해당 언어의 기능을 더 효과적으로 활용할 수 있습니다. 💡
- 3차원 이상의 다차원 배열도 가능하지만, 가독성과 유지보수성 저하로 인해 실무에서는 특수한 경우를 제외하고는 잘 사용되지 않습니다. 🚫
데브허브 | DEVHUB | 자료구조 2차원배열