생각하는 감쟈

[JAVA] 2차원 배열_02 본문

Language/Java

[JAVA] 2차원 배열_02

생각하는 감쟈🥔 2024. 3. 15. 13:52

 

	public void method5() {
		/*
		 * 키보드로 돈을 입력받아 화폐단위별로 개수를 구하시오 
		 * EX) 77550 -> 10000 7개, 5000 1개, 2000 2개, 500 1개, 50 1개
		 */

		int[] coin = { 10000, 5000, 1000, 500, 100, 50, 10 };
		int money = sc.nextInt();

		// 배열 값으로 money / -> money에서 빼줌 -> 개수 cun++
		for (int i = 0; i < coin.length; i++) {
			int num = money / coin[i];
			money %= coin[i];
			if (num == 0) continue;
			System.out.println(coin[i] + "원 " + num + "개");

		}

	}
	public void method6() {
		// 1차원 배열 건너 뛰기
		
		// [ ] 비워둔 곳은 가변으로 둔다
		int[][] arr = new int[3][];
		
		int[] stu1 = new int [4];
		int[] stu2 = new int [5];
		int[] stu3 = new int [4];

		arr[0] = stu1;
		arr[1] = stu1;
		arr[2] = stu1;
		
	}

 

 

1번

2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

 

	public void method7() {
		
		int[][] arr1 = new int[5][5];

	//1
		for (int i = 0; i < arr1.length; i++) {
			for (int j = 0; j < arr1[i].length; j++) {
				arr1[i][j] = j + i * 5 + 1;
			}
		}
		
		//출력 코드
		for (int i = 0; i < arr1.length; i++) {
			for (int j = 0; j < arr1[i].length; j++) {
				System.out.print(arr1[i][j]+"\t");
			}
			System.out.println();
		}
	}

 

더보기

처음 i for문은 몇개의 1차원이있는지  → arr1.length

        j for문은 1차원 안에 몇개의 int가 있는지  → arr1[i].length

 

arr1[i][j] = j + i * 5 +1;

I는 1,6,11,46,21 .... 등 5씩 증가  for i * 5

J는 1,2,3,4,5... 등 1씩 증가 → for j

+1은 숫자가 0이 아닌 1부터 시작해서 

 

2번

1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25

 

public void method8() {

		int[][] arr1 = new int[5][5];

	// 2
		for (int i = 0; i < arr1.length; i++) {
			for (int j = 0; j < arr1[i].length; j++) {
				arr1[i][j] = i + j * 5 + 1;
			}
		}
		
		for (int i = 0; i < arr1.length; i++) {
			for (int j = 0; j < arr1[i].length; j++) {
				System.out.print(arr1[i][j]+"\t");
			}
			System.out.println();
		}
		
	}

 

 

3번

1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25

 

	public void method9() {

		int[][] arr1 = new int[5][5];
		int k = 1;
		
	// 3
		for (int i = 0; i < arr1.length; i++) {
			// 인덱스가 짝수일 때
			if (i % 2 == 0) {
				for (int j = 0; j < arr1[i].length; j++) {
					arr1[i][j] = k++;
				}
				// 홀수 일때
			} else {
				for (int j = 0; j < arr1[i].length; j++) {
					arr1[i][4 - j] = k++;
				}
				
			}
		}
		
		for (int i = 0; i < arr1.length; i++) {
			for (int j = 0; j < arr1[i].length; j++) {
				System.out.print(arr1[i][j]+"\t");
			}
			System.out.println();
		}
	}
더보기

i 는 1,10,11,20,21... 인덱스가 짝수 또는 홀수로 구분해서 

                     짝수 : j 가 정방향으로 k을 증가 

                     홀수 : j 배열 감소 후 k값 증가 → arr1[i][4 - j] = k++;

 

 

Comments