java - 이차원 배열

songmin jeon·2023년 11월 29일
0

1. 이차원 배열

배열이 반 이라면
이차원 배열은 반 몇번 누구누구

  • 1차원 배열 안에 또 다른 배열이 있는 형태

  • 이차원배열 선언 방법

int[][] array = new int[][] ;

// 이차원 배열 알아보기 !
int[][]

// 1. 이차원배열 생성하기
// 정수형 데이터를 보관할 수 있는 이차원 배열 생성
		int[][] array = new int[3][3]; // [행][열] 순서!
		
		System.out.println(array);
		System.out.println(array[0]);
		System.out.println(array[0][0]);
		// 몇번째 행의 몇번 인덱스로 들어갈지!
		
// 2. 이차원 배열 값을 넣으면서 생성
		int[][] array2 = {  {1,2,3}, 
							{4,5,6}, 
							{7,8,9}  };
		
		System.out.println(array2[1][1]);
		
// 3. 이차원 배열 안에 값 넣기!
		int num = 1;
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < 3; j++) {
				array[i][j] = num;
				System.out.println("array["+i+"]["+j+"] = " + num);
				num++;
			}
		}
		
		// 최종출력 방법
		System.out.println(Arrays.deepToString(array));

	/* 문제
	* 이차원 배열 예제 1. 정수형 데이터를 저장할 수 있는 5행 5열 크기의 array를 선언하시오. 2. 아래와 같이 21 ~ 45 까지의
	* 숫자를 저장하고, 출력하시오.
	*/
		// 1. 5행 5열 이차원 배열 생성하기
		int[][] array = new int[5][5];
		// 2. 21부터 시작하는 변수 num 선언하기
		int num = 21;

		// 3. 열부터 데이터가 저장될 수 있도록 코드 작성
		for (int j = 0; j < array.length; j++) {
			for (int i = 0; i < array.length; i++) {
				array[i][j] = num++;
			}
		}
		
		// 4. 출력하기
		for (int j = 0; j < array.length; j++) {
			for (int i = 0; i < array[0].length; i++) {
				System.out.print(array[j][i] + "\t");
			}
			System.out.println();
		}


	/*
	* 이차원배열예제 - 스네이크 모양 
	*  1. 정수형 데이터를 저장할 수 있는 5행 5열 크기의 array를 선언하세요. 
	*  2. 아래와 같이 21 ~
	*  
	*  45까지의 숫자를 저장하고, 출력하세요.
	*/

		int[][] array = new int[5][5];	// 정수형 변수명 : array , 5공간으로 선언.
		int num = 21;					// 정수형 변수명 : num , 대입(num이 가지는 값)은 21 로 선언.

		// 반복 배열 길이만큼, 할때마다 증가함, 증가는 배열길이만큼
		for (int i = 0; i < array.length; i++) {
			
			// int[값] > 1 , 3 > if{}
			if (i % 2 == 1) {
				// [1][0] ~ [1][4]
				// [3][0] ~ [3][4]
				for (int j = array.length-1; j > -1; j--) {
					// [1][0] ~ [1][4]  = 각각 들려서 증가된 num 값을 넣어줌
					// [3][0] ~ [3][4]  = 각각 들려서 증가된 num 값을 넣어줌
					array[i][j] = num++; //num 증감자 증가 ++ (증감자는 후위)
				}
				
			// int[값] > 0 , 2 , 4 > else{}
			} else {
				// [0][0] ~ [0][4]
				// [2][0] ~ [2][4]
				// [4][0] ~ [4][4]
				for (int j = 0; j < array.length; j++) {
					// [0][0] ~ [0][4]  = 각각 들려서 증가된 num 값을 넣어줌
					// [2][0] ~ [2][4]  = 각각 들려서 증가된 num 값을 넣어줌
					// [4][0] ~ [4][4]  = 각각 들려서 증가된 num 값을 넣어줌
					array[i][j] = num++; //num 증감자 증가 ++ (증감자는 후위)
				}
			}
		}
		
		// 반복 배열 길이만큼, 할때마다 증가함, 증가는 배열길이만큼
		for (int j = 0; j < array.length; j++) {
			// 반복 배열 길이만큼, 할때마다 증가함, 증가는 배열길이만큼
			for (int i = 0; i < array.length; i++) {
				// 배열 값 출력
				System.out.print("array[" + i + "][" + j + "]=" + array[j][i] + "\t");
			}
			// 줄 계행
			System.out.println();
		}
		
		

		// 문제 2번째 방법
		
		/*
		 *  이차원배열예제 - 스네이크 모양
		 *  1. 정수형 데이터를 저장할 수 있는 5행 5열 크기의 array를 선언하세요.
		 *  2. 아래와 같이 21 ~ 45까지의 숫자를 저장하고, 출력하세요.
		 */ 
profile
제가 한 번 해보겠습니다.

0개의 댓글