Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 2108] 통계학 본문
반응형
네개의 값을 다음과 같은 방법으로 구했다.
산술평균 : 입력받을 정수들을 모두 더해 n으로 나누어 반올림
중앙값 : 배열을 정렬해 가운데 배열의 값을 출력
최빈값 : 인덱스, 빈도 횟수를 담은 클래스를 만들어 정렬한 후 최빈값(여러 개 일시 두번째 값) 출력
범위 : 최대값 - 최소값
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int a[] = new int[n];
Pair fre[] = new Pair[8001];
for(int i=-4000; i<fre.length/2+1; i++)
fre[i+4000] = new Pair(i, 0);
int sum = 0;
int min = 4001;
int max = -4001;
for(int i=0; i<n; i++) {
a[i] = Integer.parseInt(br.readLine());
sum += a[i];
min = a[i] < min ? a[i] : min;
max = a[i] > max ? a[i] : max;
fre[a[i] + 4000].cnt++;
}
Arrays.sort(a);
Arrays.sort(fre);
int second = fre[0].cnt == fre[1].cnt ? fre[1].x : fre[0].x;
bw.write((Math.round((float)sum/n)) + "\n");
bw.write(a[n/2] + "\n");
bw.write(second + "\n");
bw.write(max - min + "\n");
bw.flush();
}
static class Pair implements Comparable<Pair> {
int x;
int cnt;
Pair(int x, int cnt) {
this.x = x;
this.cnt = cnt;
}
public int compareTo(Pair o) {
return o.cnt - this.cnt;
}
}
}
입력값에 음수가 온다는 것을 유의해야 한다.
Pair 클래스 정렬방법은 카운트 내림차순 > 기본 인덱스 오름차순 순으로 정렬된다.
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 1890] 점프 (0) | 2019.06.08 |
---|---|
[백준 7569] 토마토 (0) | 2019.06.08 |
[백준 9020] 골드바흐의 추측 (0) | 2019.06.08 |
[백준 1080] 행렬 (0) | 2019.06.04 |
[백준 1541] 잃어버린 괄호 (0) | 2019.06.03 |
Comments