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

Haeun Noh·2023년 3월 30일

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]

매개변수 설명

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

  • 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안의 수가 평균 이하라면 cnt을 1증가시킨다.

for문이 끝난 뒤에는 cnt를 return시킨다.


소스 코드


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
Tistory로 옮기게 되었습니다. @haeunnohh

0개의 댓글