11.3. 프로그램언어 고(Go)에서의 다차원 배열

프로그램언어 고(Go)에서의 다차원 배열 선언 및 초기화

프로그램언어 고(Go)에서 다차원 배열을 선언하고 초기화하는 방법은 다음과 같습니다.


// 2차원 배열 선언
var arr [2][3]int

// 2차원 배열 초기화
arr := [2][3]int{ {1, 2, 3}, {4, 5, 6} } 

// 3차원 배열 선언  
var arr3d [2][3][4]int

// 3차원 배열 초기화
arr3d := [2][3][4]int{
    {
        {1, 2, 3, 4}, 
        {5, 6, 7, 8},
        {9, 10, 11, 12},
    },
    {
        {13, 14, 15, 16},
        {17, 18, 19, 20 },
        {21, 22, 23, 24},
    }
}

고(Go)에서 다차원 배열을 선언할 때에는 배열의 차원수와 자료형을 명시해야 합니다. 위의 예제와 같이 2차원 배열은 [2][3]int 형태로, 3차원 배열은 [2][3][4]int 형태로 선언할 수 있습니다.

다차원 배열을 초기화할 때에는 중괄호{}를 이용하여 각 차원의 원소값들을 나열합니다. 2차원 배열의 경우 { {1, 2, 3}, {4, 5, 6} }와 같이 행별로 구분하여 초기값을 대입할 수 있습니다.

3차원 배열도 비슷한 방식으로 차원수만큼 중괄호를 이용하여 초기화가 가능합니다. 위의 3차원 배열 초기화 예제를 보면 2개의 2차원 배열로 구성된 형태입니다.

이와 같이 고(Go)에서는 다차원 배열도 일반 배열과 비슷한 문법을 사용하여 선언 및 초기화가 간단합니다. 차원수에 따라 중괄호의 개수를 늘려가며 초기값을 대입하는 것이 포인트라고 볼 수 있습니다.

프로그램언어 고(Go)에서의 다차원 배열에 값 할당하기

프로그램언어 고(Go)에서 다차원 배열에 값을 할당하는 방법은 다음과 같습니다.


package main

import "fmt"

func main() {

    // 2차원 배열 선언
    var arr [3][4]int

    // 배열에 값 할당하기
    arr[0][0] = 1
    arr[0][1] = 2 
    arr[0][2] = 3
    arr[0][3] = 4
    arr[1][0] = 5
    arr[1][1] = 6
    arr[1][2] = 7 
    arr[1][3] = 8
    arr[2][0] = 9  
    arr[2][1] = 10
    arr[2][2] = 11
    arr[2][3] = 12

    // 배열 출력
    fmt.Println(arr)
}

위의 코드에서 볼 수 있듯이,
1. 먼저 2차원 배열을 선언합니다. [3][4]는 3행 4열의 2차원 배열을 의미합니다.

2. 배열에 값을 할당할 때는 arr[행인덱스][열인덱스] = 값 형태로 할당합니다.
예를 들어 arr[0][0] = 1은 배열의 0행 0열 위치에 1을 할당하는 것입니다.

3. 이런 식으로 반복적으로 행과 열의 인덱스를 사용하여 값을 할당합니다.

4. 할당된 배열을 fmt.Println()을 사용하여 출력할 수 있습니다.

이와 같이 고(Go)에서 다차원 배열에 값을 할당하는 방법을 쉽게 사용할 수 있습니다. 행과 열의 인덱스에 유의하여 원하는 위치에 값을 할당하면 됩니다.

프로그램언어 고(Go)에서의 다차원 배열로 작업하기

프로그램언어 고(Go)에서 다차원 배열을 사용하기 위해서는 배열을 선언할 때 크기를 지정해주어야 합니다.

예를 들어 2차원 배열을 선언할 때는 다음과 같이 합니다.


var arr [2][3]int

이는 2행 3열의 2차원 정수 배열을 선언하는 것입니다.

다차원 배열에 값을 저장하거나 접근할 때에는 인덱스를 차례대로 지정해주어야 합니다.


arr[0][0] = 1 
arr[0][1] = 2
arr[1][0] = 3

fmt.Println(arr[0][0]) // 1 출력
fmt.Println(arr[1][1]) // 0 출력(초기값)

위의 예제 코드에서 볼 수 있듯이, arr[행][열] 순서로 인덱스에 접근합니다.

다차원 배열도 일반 배열과 마찬가지로 for 문을 이용하여 순회할 수 있습니다.


for i:=0; i<2; i++ {
  for j:=0; j<3; j++ {
    fmt.Print(arr[i][j], " ") 
  }
  fmt.Println()
} 

위 코드는 2차원 배열 arr의 모든 원소를 순회하면서 출력하는 예제입니다.

range 키워드를 사용한 순회도 가능합니다.


for i, rows := range arr {
  for j, v := range rows {
    fmt.Print(v," ") 
  }
  fmt.Println()  
}

이처럼 Go언어에서도 파이썬, 자바 등의 언어와 유사하게 다차원 배열을 활용할 수 있습니다. 인덱스 접근 시 행과 열을 구분하여 차례대로 접근하고, 2중 반복문 구조를 사용하면 쉽게 순회가 가능합니다.

프로그램언어 고(Go)에서의 다차원 배열 요소 접근 방법

고(Go)언어에서의 다차원 배열 요소 접근 방법은 다음과 같습니다.


package main

import "fmt"

func main() {

    // 2차원 배열 선언
    var a [2][3]int
    
    // 배열 요소 접근
    a[0][0] = 1  
    a[0][1] = 2
    a[0][2] = 3
    a[1][0] = 4
    a[1][1] = 5  
    a[1][2] = 6

    // 배열 요소 출력
    fmt.Println(a[0][0], a[0][1], a[0][2]) // 1 2 3
    fmt.Println(a[1][0], a[1][1], a[1][2]) // 4 5 6
} 

위의 예제코드에서 보다시피, 고(Go)언어의 다차원 배열은 '[첫번째차원index][두번째차원index]'의 형태로 배열의 요소에 접근할 수 있습니다.

여기서 첫번째차원index는 배열의 첫번째 차원의 index를, 두번째차원index는 두번째 차원의 index를 가리킵니다.

예를 들어 2차원 배열이라면 a[0][1]은 첫번째차원의 0번 index, 두번째차원의 1번 index의 요소를 가리킵니다.

배열선언 시에 차원의 개수만큼 '[]'를 이용하여 표현할 수 있습니다. 위 예제의 a 변수는 2차원 배열로 선언되었기 때문에 '[2][3]'으로 표현되었습니다.

[2]가 첫번째 차원의 크기이고, [3]이 두번째 차원의 크기입니다. 즉, 2x3 크기의 2차원 배열이 선언된 것입니다.

이와 같이 고(Go)언어에서는 배열선언 시 차원과 크기를 함께 지정할 수 있으며, 접근시에는 '['와 ']'를 이용하여 차원과 index를 표현합니다.

위 설명이 도움이 되었기를 바랍니다.

프로그램언어 고(Go)에서의 다차원 배열을 이용한 루프

프로그램언어 고(Go)에서 다차원 배열을 이용한 루프는 2차원 배열부터 N차원 배열까지 for문을 이용하여 반복적으로 요소에 접근할 수 있습니다.

다차원 배열은 배열안에 배열이 있는 구조입니다. 예를 들어 2차원 배열은 행과 열로 구성되어 있고, 3차원 배열은 행, 열, 층으로 구성되어 있습니다.


package main

import "fmt"

func main() {

    // 2차원 배열 선언
    var a [2][3]int

    // 2차원 배열 초기화
    a[0][0] = 1  
    a[0][1] = 2
    a[0][2] = 3
    a[1][0] = 4
    a[1][1] = 5
    a[1][2] = 6

    // 2중 for문을 이용한 2차원 배열 접근
    for i := 0; i < len(a); i++ {
        for j := 0; j < len(a[i]); j++ {
            fmt.Print(a[i][j], " ") 
        }
        fmt.Println()
    }

}

위의 코드에서 2중 for문을 이용하여 2차원 배열 a의 모든 요소에 접근하고 있습니다.

- 바깥쪽의 for문은 배열 a의 행(i)에 접근합니다.
- 안쪽의 for문은 배열 a의 열(j)에 접근합니다.

이와 같이 n중 for문을 이용하여 n차원 배열의 모든 요소에 접근할 수 있습니다.

3차원 배열도 위와 비슷하게 3중 for문을 이용하여 접근할 수 있습니다.

다차원 배열 접근시 주의할 점은 배열 범위를 벗어나지 않도록 인덱스 값의 경계를 잘 체크하는 것입니다.

이상으로 다차원 배열을 이용한 루프에 대한 설명을 마치겠습니다.

Leave a Comment