C#에서 들쭉날쭉한 배열(Jagged Array)이란?
들쭉날쭉한 배열(Jagged Array)은 C#에서 배열을 요소로 가지는 배열을 의미합니다. 일반적인 2차원 배열과 달리, 각 내부 배열의 길이가 서로 달라도 되기 때문에 '들쭉날쭉하다'는 이름이 붙었습니다.
예를 들어 첫 번째 행은 3개의 요소, 두 번째 행은 5개의 요소를 가질 수 있어 유연한 데이터 구조를 만들 때 유용합니다.
선언 및 초기화 방법
들쭉날쭉한 배열은 다음과 같이 선언하고 초기화할 수 있습니다.
int[][] rank = new int[1][]{new int[]{5,3,1}};위 코드에서 rank는 정수형 배열을 담는 배열이며, 하나의 내부 배열 {5, 3, 1}을 포함하고 있습니다.
전체 예제 코드
다음은 C#에서 들쭉날쭉한 배열을 선언하고 반복문으로 순회하는 전체 예제입니다.
using System;
namespace Program {
class Demo {
static void Main(string[] args) {
// 2개의 정수 배열을 요소로 갖는 들쭉날쭉한 배열
int[][] rank = new int[][]{new int[]{1,2}, new int[]{3,4}};
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < rank[i].Length; j++) {
Console.WriteLine("a[{0}][{1}] = {2}", i, j, rank[i][j]);
}
}
Console.ReadKey();
}
}
}실행 결과
a[0][0] = 1 a[0][1] = 2 a[1][0] = 3 a[1][1] = 4
핵심 포인트 정리
위 예제에서 사용된 들쭉날쭉한 배열은 다음과 같습니다.
int[][] rank = new int[][]{new int[]{1,2}, new int[]{3,4}};- 구조:
rank는 두 개의 정수 배열{1, 2}와{3, 4}를 요소로 가집니다. - 접근 방법: 각 요소는
rank[i][j]형태로 이중 인덱스를 통해 접근합니다. - 유연성: 각 내부 배열의 길이가 달라도 되므로, 비정형 데이터를 저장하기에 적합합니다.
2차원 배열과의 차이점
2차원 배열(int[])은 모든 행의 열 개수가 동일해야 하지만, 들쭉날쭉한 배열은 각 행(내부 배열)의 크기를 자유롭게 설정할 수 있습니다. 또한 들쭉날쭉한 배열은 실제로 '배열의 배열'이기 때문에 메모리 구조에서도 차이가 있으며, 필요에 따라 더 효율적인 선택이 될 수 있습니다.