본문 바로가기

KOSTA : 클라우드 네이티브 애플리케이션 개발 전문가 양성과정

04/29 14일차 배열

728x90

배열과 변수의 차이

- 배열은 스타트 주소값만 찾으면 연달아 데이터가 있다.

- 변수는 메모리상에 따로 따로 있다.

 

배열이란

- 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

- 배열의 각 요소는 서로 연속적이다

- 많은 양의 데이터를 다룰 때 유용하다.

 

배열의 선언과 생성

- 타입뒤에 대괄호 []를 붙여서 배열을 선언한다.

- 배열은 선언해도 저장할 공간이 생기는 것이 아니라 배열을 다루는데 필요한 변수가 생성된다.

int[] arr; // 배열 선언
arr = new int[5]; // 배열 생성

 

배열의 초기화

- 생성된 배열에 처음으로 값을 저장하는 것

int[] arr1 = new int[3]
// int[] arr1 = new int[]{0,0,0}을 생략한 것, 초기값을 생략함

int[] arr2 = {10,20,30};
// int[] arr2가 new를 인식합니다.

 

다차원 배열 생성 및 출력

int[][] score = {
	{100,95,75},
    {80,85,95},
    {75,65,85}
};

System.out.print(score.length) //3 --> 행의 수
System.out.print(score[0].length) // 해당 행이 가지고 있는 열의 수

for(int i=0;i<score.length;i++){
	for(int j=0;j<score[i].length;j++){
    	System.out.print(score[i][j]+" ");
    }
    System.out.println(); // 2차원 배열 출력
}

 

문제1 : 배열에 모든 값 더하기

int[] arr = {10,20,30,40,50};
int sum = 0;
for(int i=0;i<arr.length;i++){
	sum += arr[i];
}
System.out.println(sum);

 

문제2 : 이차원 배열에 값 모두 더한 값과 평균 구하기

int[][] arr7 = { { 5, 5, 5, 5, 5}, {10,10,10,10,10}, {20,20,20,20,20}, {30,30,30,30,30} }; 
int total = 0; 
float average = 0;

for(int i=0;i<arr7.length;i++){
	int inTotal = 0;
	for(int j=0;j<arr7[i].length;j++){
    	total += arr7[i][j];
        inTotal += arr7[i][j];
    }
    average += intotal / arr7[i].length;
}
average /= arr7.length;
System.out.println(sum);
System.out.println(average);

 

문제3: 동전 갯수 계산하기

총액에서 동전 500원, 100원, 50원 10원의 갯수가 몇개가 나오는지 구하라

int[] coinUnit = {500, 100, 50, 10};
int money = 2680;
System.out.println("money="+money);
		
for(int i=0;i<coinUnit.length;i++) {
	int moneyPackage = money/coinUnit[i];
	System.out.println(coinUnit[i]+":"+moneyPackage);
	money %= coinUnit[i];
		}