제로의영역

10.5 다차원배열 본문

C#

10.5 다차원배열

아이큐제로 2019. 8. 9. 16:48

* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.

* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.

 

1. 정의: 차원이 둘이상인 배열

 

2. 사용법

 (1) 차원이 늘어날수록 요소에 접근할 때 사용하는 인덱스의 수가 늘어나며 2차원 배열과 문법이 같음.  

 (2) 3차원 이상의 배열을 사용하지 말것을 권장.(머리속에 배열의 내용을 유지하기 힘들어 버그를 양산할 수 있음)

 예)

int[,,] array=new int[4,3,2]
	{
    	{{1,2},{3,4},{5,6}},
        {{1,4},{2,5},{3,6}},
        {{6,5},{4,3},{2,1}},
        {{6,3},{5,2},{4,1}},
        };

예제)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._6
{
    class MainProgram
    {
        static void Main(string[] args)
        {
            int[,,] array = new int[4, 3, 2]    //3차원배열 선언
            {
                {{1,2},{3,4},{5,6} },
                {{1,4},{2,5},{3,6} },
                {{6,5},{4,3},{2,1} },
                {{6,3},{5,2},{4,1} },
            };

            for(int i=0; i<array.GetLength(0);i++)  // 3차원 길이가 4보다 작을 때까지 반복
            {
                for(int j=0;j<array.GetLength(1);j++)   // 2차원 길이가 3보다 작을 때까지 반복
                {
                    Console.Write("{ ");
                    for(int k=0;k<array.GetLength(2);k++)   // 1차원 길이가 2보다 작을 때까지 반복
                    {
                        Console.Write($"{array[i, j, k]} ");
                    }
                    Console.Write("} ");
                }
                Console.WriteLine();
            }
        }
    }
}

실행결과

{ 1 2 } { 3 4 } { 5 6 }
{ 1 4 } { 2 5 } { 3 6 }
{ 6 5 } { 4 3 } { 2 1 }
{ 6 3 } { 5 2 } { 4 1 }

 

3차원 배열이 잘 그려지지 않아 좀 더 알아봤습니다.(수학이 약해서...^^;;)

행, 열, 면으로 생각했더니 더 그림이 그려지지 않더군요. 

면의 수만큼 있는 2차원배열로 그림을 그리면 좀 더 그림이 쉽게 그려집니다.

위의 예제를 배열 그림으로 그려보면 아래와 같습니다.

 

< 선언된 코드 >

 int[,,] array = new int[4, 3, 2] 
            {
                {{1,2},{3,4},{5,6} },
                {{1,4},{2,5},{3,6} },
                {{6,5},{4,3},{2,1} },
                {{6,3},{5,2},{4,1} },
            };

 

< 배열 그림 >

1 2
3 4
5 6
1 4
2 5
3 6
6 5
4 3
2 1
6 3
5 2
4 1

 위의 4개의 배열로 그려집니다.

 첫 그림부터 그림마다 0,1,2,3 순서입니다.

  

 

'C#' 카테고리의 다른 글

10.8 컬렉션을 초기화하는 방법  (0) 2019.09.19
10.6 가변 배열  (0) 2019.08.09
10.4 2차원 배열  (0) 2019.08.06
10.3 알아두면 삶이 윤택해지는 System.Array  (0) 2019.08.05
10.2 배열을 초기화하는 세가지 방법(배열2)  (0) 2019.08.02