본문 바로가기
백준(Java)/23년 3월

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

by C0MPAS 2023. 3. 24.

3월 24일(금) - 정렬 (2108번)

 

2108번: 통계학

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

www.acmicpc.net

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

문제점

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

풀이 - 1

(BufferedReader + Arrays.sort 사용)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int[] arr = new int[N];
        int sum=0;

        for(int i=0; i<N;i++)
        {
            int value = Integer.parseInt(br.readLine());
            arr[i] = value;
            sum = sum+value;
        }

        Arrays.sort(arr);

        boolean flag = false;
        int mode_max=0;
        int mode = 10000;

        for(int i=0; i<N;i++)
        {
            int jump=0;
            int count=1;
            int i_value = arr[i];

            for(int j=i+1;j<N;j++)
            {
                if(i_value != arr[j])
                {
                    break;
                }
                count++;
                jump++;
            }

            if(count > mode_max)
            {
                mode_max = count;
                mode = i_value;
                flag = true;
            }
            else if(count == mode_max && flag == true)
            {
                mode = i_value;
                flag = false;
            }
            i = i+jump;
        }
        System.out.println((int)Math.round((double)sum/N));
        System.out.println(arr[N/2]);
        System.out.println(mode);
        System.out.println(arr[N-1] - arr[0]);
    }

}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

풀이 - 2

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

풀이출처 -> https://st-lab.tistory.com/108

댓글