본문 바로가기
Java (국비)/Java 문제

배열 문제 3

by Hwanii_ 2023. 5. 7.
728x90

/*

[문제]

1. 주석

2. 한글풀이

1) 이 배열의 이름은 data 이고

2) 3 ~ 5개까지중에서 랜덤으로 크기를 결정

ex) 3 --- >> [ _ _ _ ]

3) data에 저장되는 정수는 100 ~ 105 사이의 랜덤수가 저장됨

ex) [ 102 100 100 ]

4) A - 데이터가 홀수들의 총합

5) B - 데이터가 짝수들의 평균

console)

[ 102 100 100 ]

홀수총합 : 0

짝수평균 : 100.666667

*/

 

이클립스 에서 구현 하기

 

 

코드 풀이

1. data 배열의 값을 2로 나눴을 때 나머지가 0으로 떨어지면,

짝수이므로, 짝수만 골라서 합을 구한다.

2. 짝수평균을 구해야 해서, 짝수의 갯수를 알아야 한다.

조건문에서 짝수를 찾을때마다 짝수 갯수를 카운트 해줄 아이가

eCnt++; 이다.

3. 짝수가 아니면, else 로 가서 홀수들의 합을 구할 수 있다.

4. 짝수평균은 짝수의 합 나누기 짝수의 갯수 이고,

평균을 double 타입으로 해줬기 때문에, 형변환을 해준다.

 

 

짚고 넘어가야 할 부분

 

1. 짝수의 평균 ?

    1) 짝수의 합

    2) 짝수의 개수 구하기

 

2. 짝수가 모여있는 배열을 따로 만들고 싶으면 ?

배열의 3요소에 따라서 배열의 공간의 길이를 알아야 한다.

eCnt++ 로 새로 만들 짝수 배열의 길이를 알 수 있다.

 

3. 짝수 배열을 아래와 같이 만들면

int[] data2 = new int[eCnt]; 이고,

data2 배열을 출력하면, 값이 없으므로, 0으로 나오게 된다.

 

4. data 배열에서 짝수를 골라서, data2 배열로 옮겨야 한다.

int[] data2 = new int[eCnt];	// 짝수들이 모여 있는 배열
		
		// 이 새로운 배열에 data 배열에 있는 짝수들을 가지고 와야 한다.
		
		int j = 0;	// data2 배열의 인덱스 변수
		
		for(int i = 0; i < data.length; i++) {	// data 배열의 짝수들을 data2 배열로 옮김
			if(data[i] % 2 == 0) {
				data2[j] = data[i];
				j++;
			}
		}

 

5. 위의 코드를 이해해보기.

반응형

'Java (국비) > Java 문제' 카테고리의 다른 글

상속 문제  (0) 2023.05.15
자판기 프로그램 제작 2  (0) 2023.05.12
자판기 프로그램 제작 1  (0) 2023.05.12
배열 문제 2  (0) 2023.05.06
배열 문제 1  (0) 2023.05.06