1. 문제 정보
1) 링크 : https://www.hackerrank.com/challenges/s10-weighted-mean/problem?h_r=next-challenge&h_v=zen
Day 0: Weighted Mean | HackerRank
Compute the weighted mean.
www.hackerrank.com
2) 혹시 링크가 바뀔경우 문제 파일 PDF :
2. 설명
1) 요구사항
- 정의된 weighted mean 값을 출력하되 소수점 한자리수까지만 출력한다.
- 입력값은 특정 범위내 자연수이다.
2) 입력값
입력값은 세가지이다. N과 int 배열 2개가 각 배열의 원소의 값이 공백란으로 구분되어 하나씩 입력된다.
- 모두 자연수이며 {N | 5 <= N <= 50}, {x | 0 < x < 100, x ∈ X}, {w | 0 < w < 100, w ∈ W}
- 배열 X와 W의 원소 갯수는 N = n(X) = n(W).
3) 알고리즘 설명
통계/분석을 하기 위해 배우는 기초적인 수학적 지식을 설명하고 이를 구현하는 내용이다.
Weighted mean이라는 값은 가중치 평균을 의미한다.
데이터마다 중요도라고 할지 유의깊게 보아야할 것들은 이렇듯 가중치를 줄 수 있다. 가중치를 결정하는 것은 분석에서 정말 중요한 사안이기도 하다. 물론 여기서는 가중치를 입력받기에 가중치를 스스로 학습시키거나 처리되게끔 만들 필요는 없다.
전체 소스 :
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String tmp = sc.nextLine();
int N = Integer.parseInt(tmp);
int[] x = new int[N];
int sum = 0, wsum = 0;
for(int inx=0; inx<N; inx++)
{
x[inx] = sc.nextInt();
}
for(int inx=0; inx<N; inx++)
{
int weight = sc.nextInt();
wsum += weight;
sum += x[inx]*weight;
}
System.out.printf("%.1f",(sum+0.0)/wsum);
}
}
'programming > algorithm 공부' 카테고리의 다른 글
[hackerrank] s10-basic-statistics Day 1 - Interquartile Range (0) | 2020.01.09 |
---|---|
[hackerrank] s10-basic-statistics Day 1: Quartiles (0) | 2020.01.09 |
[hackerrank] s10-basic-statistics Day 0 - Mean, Median, and Mode (0) | 2020.01.08 |
[Algorithm] big O (25 days : Running Time and Complexity) (0) | 2018.02.09 |
[Algorithm] BT (Binary Tree) & BST (Binary Search Trees) (0) | 2018.02.09 |