[Java Programming] 자바 2D Array 배우기


public class Array{

public static void main(String[] args){

int[][] numbers = {

{10, 30, 80},

{1, 3, 8}.

{100, 200, 300}

};

for (int x = 0 ; x < numbers.length ; x++){

for (int i = 0 ; i < numbers[x].length ; i ++){

System.out.print(numbers[x][i] + "\t");

}

System.out.println();

}

}

}


[result]

10    30    80

1    3    8    

100    200    300


[Java Programming] 배열 배우기 _ 2, Array_2


public class Application{

public static void main(String[] args){

String[] fruits = {'Apple', 'orange', 'banana'};

System.out.println(fruits[0]);


for(String text : fruits){

    System.out.println(text);

}

}

}


[result]

Apple

Apple

orange

banana

Java 1차원 배열, 1D array 배우기


public class Application{

     public static void main(String[] args){
       String[] numbers = new String[4];   //declaration important

   numbers[0] = "Welcome";

   numbers[1] = "To";

   numbers[2] = "My";

   numbers[3] = "Channel";
   for(int i = 0; i < 4 ; i++){

System.out.println(numbers[i]);

   }

   

   int[] Hi = new int[4];

   Hi[0] = 1

   Hi[1] = 2

   Hi[2] = 22

   Hi[3] = 44

   for(int j = 0 ; j < 4 ; j++){

       System.out.println(Hi[j]);

   }

}

}


[result]

Welcome

To

My

Channel

1

2

22

44

C-프로그래밍 3D Array, 3차원 배열 배우기!


이전에 배웠던 1D array와 2D Array를 복습해봅시다.


1D array(1차원 배열)은 row(행)이 하나인 배열이라고 생각하면 된다고 했습니다.

Row(행)이 하나이기 때문에 단순히 int Array[10] = {0}; 이렇게 초기화와 동시에 선언해줄 수 있다고 했습니다.


반면에 2D array(2차원 배열)은 row(행)가 2개인 배열이라고 생각하면 된다고 했는데요.

Row(행)이 두 개이기 때문에 int Array[2][3] = {0}; 이런식으로 선언과 초기화가 동시에 가능할 것입니다.


ex) [ 1D - Array] 

 int Array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

for(i=0; i<10; i++){

printf(" %4d", Array[i]);

}


result : 1   2   3   4   5   6   7   8   9   10


ex) [2D - Array]

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


for(i=0; i<2; i++){

for(j=0; j<3; j++){

printf("%4d", Array[i][j]);

 }

printf("\n");

}

result : 1   2   3

    4   5   6


이런 식으로 출력됨을 알 수 있습니다.


이제 부터 조금 어렵습니다! 드디어 3D-Array 3차원 배열인데요,

사실 3차원 배열부터는 사용할 일이 거의 없습니다.

3차원 배열을 생각할 때 쉽게 생각하려면

1차원 배열이 선이었다면, 2차원 배열은 면이고, 3차원 배열은 부피(?), 라고 생각하면 되겠습니다.

1차원 배열에서 row(행)이 여러개 추가된게 2차원 배열이었으니,

3차원 배열은 1차원 배열에서 하나 더 추가 되어야 겠지요?


ex) 1D-Array int array[10];

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

ex) 2D-Array int array[2][3];

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

ex) 3D-Array int array[2][2][3];

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


얼핏 보기에는 조금 어렵죠? 1차원 배열이 위 같이 선언되었다면, 요소가 10개인 1차원 배열이 하나 선언되었다고 생각하면 됩니다.

2차원 배열이 위 같이 선언되었다면 3개 짜리 요소를 가진 행이 두 개 있다. 라고 생각하면 쉬울 듯 합니다.

3차원 배열은 뒤에서부터 생각하면 쉬울 것 같은데요, 3개짜리 요소를 가진 행 두개가 두 개 있다. 라고 생각하면 쉽죠?


[2][2][3] 이니까, 3개 짜리 요소를 가진 행 2개가 2번 있다!

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

이렇게 되는 겁니다!


3차원 배열은 사실 쓰일 일이 많이 없다는게 함정입니다.(Karnaugh map(K-Map)에서도 6-Variables 부터는 잘 안 쓰이는 것 처럼 말입니다.)


고생하셨습니다.


나중에 더욱 더 품격있는 강의로 돌아오겠습니다.

Happy Studies!

#include <stdio.h>


int main(void){

int i=0;

int arr[10]={0}; // 일단 1차원 1D 배열(array)을 선언해줍니다. arr[10]={0} 뜻은 arr라는 이름을 가진 array에 10칸의 저장메모리가 확보되었고, 10칸이 모두 0으로 초기화 되었다는 뜻입니다.


arr[10]={1}; // 이렇게 해주면 10칸이 모두 1로 초기화 됩니다.


arr[0]=0;

arr[1]=1;

arr[2]=2;

arr[3]=3;

arr[4]=4;

arr[5]=5;

arr[6]=6;

arr[7]=7;

arr[8]=8;

arr[9]=9;   // 이렇게 한칸의 메모리에 특정값을 대입할 수도 있습니다.



for(i=0;i<10;i++){

printf("arr[%d]=%d\n", i, arr[i]); //이렇게 하면 저장된 모든 값들이 출력됩니다.

}


arr[10]={1,2,4,5}; //만약 이렇게 저장하게 된다면, 메모리칸은 10칸이 선언됐는데 실제 값들은 4개만 있다면, arr[4]~arr[9]까지는 모두 0으로 채워집니다. 오류는 없습니다.



//1D array 1차원 배열은 대충 이해 되셨나요?

//이제 2D array에 대해 배워보겠습니다.



 int arr2[2][3]={0};

 arr2[2][3]={1,2,3,4,5,6};

 arr2[2][3]={{1,2,3},{4,5,6}}; // 위의 것과 동일합니다. 차이점이 전혀 없습니다.

 arr2[2][3]={{1},{2,3,4}}; // 첫번째 row의 값은 1만 있죠? 나머지 두 칸은 마찬가지로 0으로 채워집니다.


//for 문을 이용해서 출력할 때는

for(i=0;i<2;i++){

for(j=0;j<3;j++){

printf("%d", arr2[i][j]);

}

printf("\n");

}

//이런식으로 하게 됩니다!




return 0;

}



multi-dimension 이라고 불리우는데 3D array 부터는 조금 어려워집니다. 마치 6 Variables K-map하는 것 처럼 어려워집니다.


3차원 배열은 다음시간에 배워보겠습니다.


고생하셨습니다. 다음에는 영상으로 찾아뵙겠습니다.

'Study' 카테고리의 다른 글

C 프로그래밍 헤더 종류  (0) 2018.05.10
C-프로그래밍 주석 comment 기초 배우기  (0) 2018.05.10
C 프로그래밍 강의 포인터 함수  (0) 2018.05.10
C - 프로그래밍 포인터 강의  (0) 2018.05.10
C 프로그래밍 (2)  (0) 2018.05.01

+ Recent posts