[Java] 평균과 평균 이하인 수의 개수 구하기

haeun_06·2023년 3월 30일
0

JAVA

목록 보기
7/8
post-thumbnail

0330


문제 설명

평균은 자료의 합을 자료의 개수로 나눈 값을 의미합니다. 자연수가 들어 있는 배열의 평균을 구하고, 평균 이하인 숫자는 몇 개 있는지 구하려고 합니다.
예를 들어 주어진 배열이 [1,2,3,4,5,6,7,8,9,10]이라면 평균은 5.5이므로 배열에서 평균 이하인 값은 5개입니다.
자연수가 들어있는 배열 data 가 매개변수로 주어질 때, 배열에 평균 이하인 값은 몇 개인지 return라도록 solution 메서드를 작성했습니다. 입력에 대해 올바르게 동작하게 하세요.


제한 사항

  • data의 길이는 배열 10 이상 100 이하 정수입니다.
  • data의 원소는 1 이상 1000 이하의 자연수입니다.

입출력 예

datareturn
[1,2,3,4,5,6,7,8,9,10][1,1,1,1,1,1,1,1,1,10]

매개변수 설명

자연수가 들어있는 배열 datasolution 메서드의 매개변수로 주어집니다.

  • data의 길이는 10 이상 100 이하 정수입니다.
  • data의 원소는 1 이상 1000 이하의 자연수입니다.

풀이 방식

	public int solution(int[] data) {
		double total = 0;
		int len = data.length;
		for ( int i = 0;i < len; i++)
			total += data[i];

main메서드에서 가져온 data배열의 총 합계를 구한다.


		int cnt = 0;
		double average = total/len;
		for ( int i = 0;i < len; i++) {
			if ( data[i] <= average )
				cnt++;
		}
		return cnt;

평균보다 작은 수의 개수를 카운팅할 변수 cnt를 초기화한다.
평균을 총합계를 수의 개수로 나누어 계산한다.

만약 data안의 수가 평균 이하라면 cnt1증가시킨다.

for문이 끝난 뒤에는 cntreturn시킨다.


소스 코드


public class Average {

	public int solution(int[] data) {
		double total = 0;
		int len = data.length;
		for ( int i = 0;i < len; i++)
			total += data[i];
		int cnt = 0;
		double average = total/len;
		for ( int i = 0;i < len; i++) {
			if ( data[i] <= average )
				cnt++;
		}
		return cnt;
	}
	
	public static void main(String[] args) {
		Average a = new Average();
		int[] data1 = {1,2,3,4,5,6,7,8,9,10};
		int ret1 = a.solution(data1);
		
		System.out.println("Solution : "+ret1);
		
		int[] data2 = {1,1,1,1,1,1,1,1,1,10};
		int ret2 = a.solution(data2);
		
		System.out.println("Solution : "+ret2);
	}

}

실행 결과



profile
개발새발 블로그

0개의 댓글