minlog

2차원 배열과 가변배열

2023.11.12·조회수:
0
thumbnail
 

2차원 배열과 가변배열

앞에서는 10개의 공간을 1차원 배열로 표현해봤는데,

이번에는 10개의 공간을 2차원 배열로 표현해볼 것이다.

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


class Array
{
    static void Main(string[] args)
    {
        // 1차원 배열
        int[] 아파트1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 1차원 배열로 표현한 경우

        // 2차원 배열
        int[ , ] 아파트2 = new int[5, 2];

        아파트2[0, 0] = 0;
        아파트2[0, 1] = 1;

        아파트2[1, 0] = 2;
        아파트2[1, 1] = 3;

        아파트2[2, 0] = 4;
        아파트2[2, 1] = 5;

        아파트2[3, 0] = 6;
        아파트2[3, 1] = 7;

        아파트2[4, 0] = 8;
        아파트2[4, 1] = 9;

        // 출력
        for (int i = 0; i<5; i++)
        {
            for(int j = 0; j<2; j++)
            {
                Console.WriteLine("i값 : " + i + "     j값 : "+ j + "      값 : "+ 아파트2[i,j]);
            }
            Console.WriteLine();
        }
    }
}

출력

i값 : 0 j값 : 0 값 : 0 i값 : 0 j값 : 1 값 : 1

i값 : 1 j값 : 0 값 : 2 i값 : 1 j값 : 1 값 : 3

i값 : 2 j값 : 0 값 : 4 i값 : 2 j값 : 1 값 : 5

i값 : 3 j값 : 0 값 : 6 i값 : 3 j값 : 1 값 : 7

i값 : 4 j값 : 0 값 : 8 i값 : 4 j값 : 1 값 : 9


가변배열

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


class Array
{
    static void Main(string[] args)
    {
        // 1차원 배열
        int[] 아파트1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 1차원 배열로 표현한 경우

        // 2차원 배열
        int[,] 아파트2 = new int[5, 2];

        // 가변 배열
        // int[][] 아파트3 = new int[5][2]; // 에러! => 가변 배열 표현 방식에서는 [5][2]라고 열까지 정해주면 에러
        int[][] 아파트4 = new int[5][];     // 가변 배열 : 열은 자유롭게

        // 1번째 행
        아파트4[0] = new int[2]; // 가변 배열 : 따로 공간을 만들어줘야 한다.
        아파트4[0][0] = 0;
        아파트4[0][1] = 1;
        // 아파트4[0][2] = 2; // 에러! => 존재하지 않는 공간

        // 2번째 행
        아파트4[1] = new int[1];
        아파트4[1][0] = 2;

        // 3번째 행
        아파트4[2] = new int[3];
        아파트4[2][0] = 3;
        아파트4[2][1] = 4;
        아파트4[2][2] = 5;

        // 4번째 행
        아파트4[3] = new int[3];
        아파트4[3][0] = 6;
        아파트4[3][1] = 7;
        아파트4[3][2] = 8;

        // 5번째 행
        아파트4[4] = new int[1];
        아파트4[4][0] = 9;



        // 출력
        for (int i = 0; i < 아파트4.Length; i++)
        {
            for (int j = 0; j < 아파트4[i].Length; j++)
            {
                Console.WriteLine("i : " + i + "     j : "+j+"     값 : " + 아파트4[i][j]);
            }
            Console.WriteLine();
        }
    }
}

출력

i : 0 j : 0 값 : 0 i : 0 j : 1 값 : 1

i : 1 j : 0 값 : 2

i : 2 j : 0 값 : 3 i : 2 j : 1 값 : 4 i : 2 j : 2 값 : 5

i : 3 j : 0 값 : 6 i : 3 j : 1 값 : 7 i : 3 j : 2 값 : 8

i : 4 j : 0 값 : 9


가변배열 + 2차원배열

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


class Array
{
    static void Main(string[] args)
    {

        // 가변 배열
        // int[][] 아파트3 = new int[5][2]; // 에러! => 가변 배열 표현 방식에서는 [5][2]라고 열까지 정해주면 에러
        // int[][] 아파트4 = new int[5][];     // 가변 배열 : 열은 자유롭게
        int[][,] 가변배열 = new int[3][,];

        // 1번째 행
        가변배열[0] = new int[2, 3] { { 0, 1, 2 },{ 3, 4, 5 } };


        // 2번째 행
        가변배열[1] = new int[2, 3];
        가변배열[1][0, 0] = 0;
        가변배열[1][0, 1] = 1;
        가변배열[1][0, 2] = 2;

        가변배열[1][1, 0] = 3;
        가변배열[1][1, 1] = 4;
        가변배열[1][1, 2] = 5;



        // 3번째 행
        가변배열[2] = new int[3, 2] { {0,1},{2,3},{4,5} };





        // 출력
        for (int a = 0; a < 가변배열.Length; a++)
        {
            for(int b = 0; b<가변배열[a].GetLength(0); b++)
            {
                for(int c = 0; c < 가변배열[a].GetLength(1); c++)
                {
                    Console.WriteLine(가변배열[a][b,c]);
                }
            }
            Console.WriteLine();
        }
    }
}

출력

0 1 2 3 4 5

0 1 2 3 4 5

0 1 2 3 4 5