반응형

 

 

<코드>

import java.util.*;
public class Main {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int arr[]  = new int[N];
		int count[][] = new int[8001][2]; // [개수][수]
		int sum = 0;
		
		for (int i = 0; i < N; i++) {
			int num = sc.nextInt();
			arr[i] = num;
			sum += num;
			count[num+4000][0]++;
			count[num+4000][1] = num;
		}
		
		Arrays.sort(arr);
		Arrays.sort(count, (a,b)->{
			if(a[0] == b[0]) {
				return a[1] - b[1];
			}else {
				return b[0] - a[0];
			}
		});
		
		// 산술평균
		System.out.println(Math.round((double)sum/(double)N)); 
		
		// 중앙값
		System.out.println(arr[N/2]); 
		
		// 최빈값
		if(N == 1) {
			System.out.println(arr[0]);
		}else if(count[0][0] == count[1][0]) {
			System.out.println(count[1][1]);
		}else {
			System.out.println(count[0][1]);
		}
		
		// 범위
		System.out.println(arr[N-1]-arr[0]); 
	}
}

 

 

https://www.acmicpc.net/problem/2108

 

2108번: 통계학

첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.

www.acmicpc.net

 

반응형

+ Recent posts