Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

main

[백준-2108번/Java] 통계학 본문

Algorithm

[백준-2108번/Java] 통계학

1984 2022. 11. 12. 17:56

* 빈도값을 저장하기 위해서 HashMap 사용

* 반올림 Math.round

import java.io.*;
import java.util.*;
import java.util.Map.Entry;

public class Main {

	public static void main(String[] args) throws IOException {

		Scanner scan = new Scanner(System.in);

		int N = scan.nextInt();
		int[] numbers = new int[N];
		Map<Integer, Integer> map = new HashMap<Integer, Integer>();
		long sum = 0;
		int max_freq = 1;

		for (int i = 0; i < N; i++) {
			int num = scan.nextInt();
			int freq;

			if (map.containsKey(num)) {
				freq = map.get(num) + 1;
			} else {
				freq = 1;
			}

			if (max_freq < freq) {
				max_freq = freq;
			}
			numbers[i] = num;
			map.put(num, freq);
			sum += num;
		}

		Arrays.sort(numbers);

		// 평균값
		System.out.println(Math.round((double) sum / N));
		// 중위값
		System.out.println(numbers[numbers.length / 2]);

		List<Integer> freq_key_list = new ArrayList();
		for (Entry<Integer, Integer> entry : map.entrySet()) {
			if (entry.getValue() == max_freq) {
				freq_key_list.add(entry.getKey());
			}
		}

		Collections.sort(freq_key_list);

		// 최빈값
		if (freq_key_list.size() > 1) {
			System.out.println(freq_key_list.get(1));
		} else {
			System.out.println(freq_key_list.get(0));
		}
		// 범위
		System.out.println(numbers[numbers.length - 1] - numbers[0]);
		scan.close();

	}

}
728x90

'Algorithm' 카테고리의 다른 글

[백준-1004번/Java] 어린왕자  (0) 2022.11.12
[백준-2775번/Java] 부녀회장이 될테야  (0) 2022.11.12
[백준-13458번/Java] 시험 감독  (0) 2022.11.12
[백준-10773번/Java] 제로  (0) 2022.11.12
[백준-1193번/Java] 분수찾기  (0) 2022.11.11
Comments