반응형
import java.util.*;
import java.lang.reflect.Array;
import java.util.Collections;
public class Main{
static public void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr []=new int [n];
for(int i=0;i<n;i++) {
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
int sum=0;
//합 구하기
for(int i=0;i<n;i++) {
sum+=arr[i];
}
//빈도수 배열 구하기
int mode []=new int[n];
int idx=0;
int k=1;
while(k<n) {
if(arr[k]==arr[k-1]) {
mode[idx]=mode[idx]+1;
}
else {
idx=idx+mode[idx]+1;
}
k++;
}
//빈도수 배열에서 가장 높은 수를 구하고
int max=0;
for(int i=0;i<=idx;i++) {
if(mode[i]>max) max=mode[i];
}
//max번 나온애들의 idx를 리스트에 추가
ArrayList <Integer> ans_idx=new ArrayList<>();
for(int i=0;i<=idx;i++) {
if(mode[i]==max) ans_idx.add(i);
}
//산술평균
System.out.println(Math.round((float)sum/n));
//중간값
System.out.println(arr[n/2]);
//최빈값(가장 많이 나온 값). 여러 개 있을 때에는 최빈값 중 두 번째로 작은 값을 출력한다.
if(ans_idx.size()>1) {
int myidx=ans_idx.get(1);
System.out.println(arr[myidx]);
}
else {
int myidx=ans_idx.get(0);
System.out.println(arr[myidx]);
}
//범위
System.out.println(arr[n-1]-arr[0]);
}
}
반응형
댓글