배열이란 무엇인가

본문 로딩 중...
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
배열(array)란, 같은 형식의 값 여러개를 하나의 이름으로 묶고, 번호(index)로 구분해 꺼내 쓰는 자료 구조입니다.
배열의 구조
// Type[] Name;
int[] numbers = {1, 3, 6, 7};
int[] numbers = new int[] {1, 3, 6, 7};
int[] numbers = new int[4];
// 범위를 벗어난 인덱스 접근 : 에러
Console.WriteLine(numbers[5]);
Console.WriteLine(numbers[-1]);
배열 변수는 칸 묶음 자체가 아니라 칸 묶음이 있는 곳을 가리킵니다.
int[] original = { 10, 20, 30 };
int[] copy = original; // 칸 묶음이 복제되는 것이 아닙니다.
copy[0] = 999;
Console.WriteLine(original[0]); // 999 가 출력됩니다.
위와 같이 새로운 배열 변수를 만들어서 할당을 해주더라도, 값 자체를 복사해서 따로 가지고 있는 것이 아니기 때문에
아래와 같은 방법으로 배열 복사를 할 수 있다.
int[] origin = new int[] { 1, 2, 3, 4 };
int[] copy = new int[origin.Length];
Array.Copy(origin, copy, origin.Length);
copy[0] = 5;
Console.WriteLine(copy[0]); // 출력 : 5
배열이름. Length
| 구분 | 값 |
|---|---|
| 길이 | Length |
| 첫 인덱스 | 0 |
| 마지막 인덱스 | Length - 1 |
| 쓸 수 없는 인덱스 | Length 이상, 음수 |
행과 열로 이루어진 격자 입니다.
요소 하나를 지목하려면 번호가 두 개 필요합니다.
tile[1, 2]> 앞의 번호가 행(가로줄), 뒤의 번호가 열(세로줄)입니다.
2차원배열의 선언방식
int [,] matrix;
int [,] matrix = new int[3,3];
int[,] matrix =
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};
| 구하려는 것 | 표기 | 위 예제에서의 값 |
|---|---|---|
| 전체 요소 수 | tile.Length | 12 |
| 행 수 | tile.GetLength(0) | 4 |
| 열 수 | tile.GetLength(1) | 3 |
int[,] matrix =
{
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20},
{ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30},
{ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40},
{ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50},
};
Console.WriteLine(matrix[3,7]); // 38
3차원배열의 선언방식
int[,,] matrix =
{
{
{ 1, 2, 3 },
{ 4, 5, 6 }
},
{
{ 7, 8, 9 },
{ 10, 11, 12 }
}
};
string문자열은char변수들의 배열이다.
// 문자열 수정방법
string text = "반복문 주제에서 다룹니다";
Console.WriteLine(text[1]); // 출력 : 복
// text[1] = "형"; // 안됨
char[] changeChars = text.ToCharArray();
changeChars[1] = '형';
string newText = new string(changeChars);
Console.WriteLine(newText);
// 유저의 입력을 받고 합하는 함수
// 조건 : 56 21 87 입력
string userInput = Console.ReadLine();
string[] inputs = userInput.Split(' '); // 띄워쓰기 한칸 기준으로 자르겠다.
int[] numbers = new int[3];
numbers[0] = int.Parse(inputs[0]);
numbers[1] = int.Parse(inputs[1]);
numbers[2] = int.Parse(inputs[2]);
int result = numbers[0] + numbers[1] + numbers[2];
Console.WriteLine(result); // 출력 : 164
