🔥 다차원 배열
강의 목차
Go 언어에서는 배열 안에 배열을 넣어 다차원 배열을 만들 수 있습니다. 다차원 배열은 [n1][n2]...[nm]T
형태로 선언할 수 있는데, 여기서 n1
, n2
, ..., nm
은 각 차원의 크기를, T
는 배열 요소의 타입을 나타냅니다.
예를 들어, 다음과 같이 2차원 배열을 선언할 수 있습니다.
var matrix [2][3]int
go
이 코드는 matrix
라는 이름의 변수를 선언하고, 2행 3열의 정수 요소를 가진 2차원 배열로 초기화합니다.
다차원 배열도 배열 리터럴을 사용하여 초기화할 수 있습니다. 다음은 2차원 배열을 초기화하는 예제 코드입니다.
package main import "fmt" func main() { var matrix [2][3]int = [2][3]int{ {1, 2, 3}, {4, 5, 6}, } fmt.Println(matrix) var matrix2 = [2][2]string{ {"C", "C++"}, {"Java", "Go"}, } fmt.Printf("%q\n", matrix2) }
go
이 코드는 다음과 같은 단계로 실행됩니다.
var matrix [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}}
으로 2행 3열의 정수 요소를 가진 2차원 배열matrix
를 선언하고 초기화합니다.fmt.Println(matrix)
로matrix
배열 전체를 출력합니다.var matrix2 = [2][2]string{{"C", "C++"}, {"Java", "Go"}}
로 2행 2열의 문자열 요소를 가진 2차원 배열matrix2
를 선언하고 초기화합니다.fmt.Printf("%q\n", matrix2)
로matrix2
배열 전체를 문자열 형태로 출력합니다.
이 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
[[1 2 3] [4 5 6]] [["C" "C++"] ["Java" "Go"]]
text
물론이에요! 3차원 배열 예제를 추가해 보겠습니다. 다음과 같이 내용을 이어갈 수 있겠네요.
3차원 배열
Go 언어에서는 3차원 이상의 배열도 만들 수 있습니다. 3차원 배열은 [n1][n2][n3]T
형태로 선언할 수 있는데, 여기서 n1
, n2
, n3
은 각 차원의 크기를, T
는 배열 요소의 타입을 나타냅니다.
예를 들어, 다음과 같이 3차원 배열을 선언할 수 있습니다.
var cube [2][3][4]int
go
이 코드는 cube
라는 이름의 변수를 선언하고, 2 x 3 x 4 크기의 정수 요소를 가진 3차원 배열로 초기화합니다.
3차원 배열도 배열 리터럴을 사용하여 초기화할 수 있습니다. 다음은 3차원 배열을 초기화하는 예제 코드입니다.
package main import "fmt" func main() { var cube [2][2][2]int = [2][2][2]int{ { {1, 2}, {3, 4}, }, { {5, 6}, {7, 8}, }, } fmt.Println(cube) var colors = [2][2][3]string{ { {"Red", "Green", "Blue"}, {"Cyan", "Magenta", "Yellow"}, }, { {"Purple", "Orange", "Pink"}, {"Brown", "Gray", "White"}, }, } fmt.Printf("%q\n", colors) }
go
이 코드는 다음과 같은 단계로 실행됩니다.
var cube [2][2][2]int = ...
로 2 x 2 x 2 크기의 정수 요소를 가진 3차원 배열cube
를 선언하고 초기화합니다.fmt.Println(cube)
로cube
배열 전체를 출력합니다.var colors = [2][2][3]string{...}
로 2 x 2 x 3 크기의 문자열 요소를 가진 3차원 배열colors
를 선언하고 초기화합니다.fmt.Printf("%q\n", colors)
로colors
배열 전체를 문자열 형태로 출력합니다.
이 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
[[[1 2] [3 4]] [[5 6] [7 8]]] [[["Red" "Green" "Blue"] ["Cyan" "Magenta" "Yellow"]] [["Purple" "Orange" "Pink"] ["Brown" "Gray" "White"]]]
text
3차원 배열은 큐브나 3D 공간 데이터를 표현하는 데 사용될 수 있습니다. 물론 더 높은 차원의 배열도 만들 수 있지만, 가독성과 관리 측면에서 주의가 필요합니다. 일반적으로는 슬라이스나 맵 등의 자료구조를 활용하는 것이 더 효과적일 수 있습니다.
이처럼 Go 언어에서는 다차원 배열을 통해 행렬과 같은 구조를 표현할 수 있습니다. 다차원 배열은 데이터를 체계적으로 구성하고 처리하는 데 유용하게 활용될 수 있습니다.