DataStructure - 2차원 배열(2D Array)이란?
DataStructure - 2차원 배열(2D Array)이란?
본 글은 『얄코의 가장 쉬운 자료구조와 알고리즘』을 참고하여 개인 학습 목적으로 이해한 내용을 정리한 것입니다.
2차원 배열의 구조는 아래와 같이 배열 안에 배열이 들어가있는 형태임.
1
2
3
4
5
[
[1,2,3],
[1,2,3],
[1,2,3]
]
따라서, 인덱스를 통해 접근하려면 array[n][m]과 같은 형태로 접근해야함.
2차원 배열을 메모리에서 관리하는 방식은 언어별로 차이가 있음.
Swift의 경우에는 바깥쪽에 위치한 배열이 안쪽에 위치한 배열을 참조하는 구조이기 때문에 아래와 같이 배열 요소의 수가 다를 수 있음.
1
2
3
4
5
[
[1,2],
[1,2,3],
[1]
]
처리 성능
- 2차원 배열 생성: O(n * m)
- 2차원 배열 요소 접근: 인덱스를 통해 접근 → O(1)
- 2차원 배열 요소 수정: 인덱스를 통해 접근 → O(1)
- 2차원 배열 특정 요소 조회: 특정 요소가 나올때까지 모든 요소를 순회해야함 → O(n * m)
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 배열 생성
var array: [[Int]] = [
[1,2],
[1,2,3],
[1]
]
// 배열 요소 접근
print(array[0][1])
// 배열 요소 수정
array[1][2] = 10
// 배열 전체 순회
for arr in array{
for row in arr{
print("\(row) ", terminator: "")
}
print()
}
결과
1
2
3
4
2
1 2
1 2 10
1
This post is licensed under CC BY 4.0 by the author.