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