백준 2108번(Java)

박은지·2025년 2월 24일

백준

목록 보기
37/89
post-thumbnail

import java.io.*;
import java.util.*;

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 num = Integer.parseInt(br.readLine());
			sum += num;
			arr[i] = num;
		}
		
		Arrays.sort(arr);
		
		boolean flag = false;
		int mode_max = 0; // 최빈값의 최대값
		int mode = 9999;
		
		for(int i=0; i<N; i++) {
			int jump = 0; // 같은 수 나오면 i 값 jump 시킴
			int count = 1;
			int i_num = arr[i];
			
			for(int j=i+1; j<N; j++) {
				if(i_num != arr[j]) {
					break;
				}
				count++;
				jump++;
			}
			
			if(count > mode_max) {
				mode_max = count;
				mode = i_num;
				flag = true;
			} else if(count == mode_max && flag == true) {
				mode = i_num;
				flag = false;
			}
			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]);
	}
}
profile
백엔드 개발자가 되고싶은 eunzi😊

0개의 댓글