코딩놀이! 10 Days of Statistics(HackerRank)
Day 0: Weighted Mean
첫 번째 문제!
Objective In the previous challenge, we calculated a mean. In this challenge, we practice calculating a weighted mean. Check out the Tutorial tab for learning materials and an instructional video! Task Input Format The first line contains an integer, , denoting the number of elements in arrays and . Constraints
Output Format Print the weighted mean on a new line. Your answer should be rounded to a scale of decimal place (i.e., format). Sample Input
Sample Output
Explanation We use the following formula to calculate the weighted mean: And then print our result to a scale of decimal place () on a new line. |
음..... 저는 보통 영어는 읽기....가...눈에.....안들어오죠 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그래서 Sample Input 과 Sample Output 만 보고 푸는 경우가 다반사죠 ㅋㅋㅋ
그다음 아래 있는 Explanation 을 보고 대충 아 숫자 저렇게 오키오키 하고 풉니다.
문제 해석
1. 입력받을 숫자의 갯수를 A 입력받습니다.
2. 분자를 A 개 만큼 입력 받는다.
3. 분모를 A 개 만큼 입력 받는다.
계산식!!!
1. 분자 = 첫번째(분자*분모)+두번째(분자*분모)+세번째(분자*분모)........+A번째(분자*분모)
2. 분모 = 첫번째(분모)+두번째(분모)+세번째(분모).......+A번째(분모)
3. 분자/분모 하여 소수 첫번째 까지 표기!(*반올림*)
자 이제 슈도코딩?!!!이 나름 끝났으니 끄적끄적 코딩!!!!!!
class Solution { static void Main(String[] args) { int N = Convert.ToInt32(Console.ReadLine()); int[] x_arr = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse); int[] w_arr = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse); Console.WriteLine(weightMin(x_arr, w_arr)); }
static string weightMin(int[] paramNumerator, int[] paramDenominator) { int numerator = 0; for (var i = 0; i < paramNumerator.Length; i++) { numerator += paramNumerator[i] * paramDenominator[i]; }
int denominator = 0; foreach(int w_temp in paramDenominator) { denominator += w_temp; }
decimal result = (decimal)numerator/denominator; return string.Format("{0:0.0}", result); } } |
위 코드 에 대한 설명은.........뭐 필요가 없는거 같네요 ㅋㅋ
그저... 변수들에 네이밍이 왜 저따구인지.........ㅠㅠㅠ
사실 고민하다가 ....걍 읽을수 있는 코드를 짜자! 라고 생각해서 길지만....ㅋㅋㅋ
param분모 param분자... 좋은 네이밍을 찾습니다..ㅠ
메인 에서는 문제와 같이 X,W를 썻구요
실제 weightMin에서는 분자,분모역할이기에 영알못이지만 Denominator, Numerator을 썻습니다.
-후기: 완벽한 코드가 아님 문제자와 의도를 알지만 내맘대로짬 하지만 Hackerrank 에서는 그냥 맞다고 처리해줌!ㅋㅋㅋ(왜냐? Hackerank는 오류를 범할 input을 만들지 않으니깐!) 오늘도 허점이 있는 개발을 짜버렷네요 ㅋㅋㅋ
--문제에 대한 질문: 처음 입력받는 N 은 왜 입력 받는걸까요?..... 분자를 입력받다가 저 숫자를 넘어서면 분모입력받은걸로 처리하려고 하나요? 이건 프로그램에 문제는 아니지만 음...글쎄올시다! 아래 체점하는 Input에는 분명 엔터가! 있는데!!! 음 모르겠습니다 ㅋㅋㅋ
--아래 Congratulations 는 참 보기 좋습니다 ㅋㅋㅋㅋ
*나만의 뻘짓;;고백
첫번째 뻘짓 입니다;;
중간에 count 보시면 ++ 시키죠...
문제를 제대로 읽지 않으면 이렇게 됩니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
신기하게 Run Code 는 정상 통과인데 Submit Code에서 3,4번째 체점만 안되는겁니다 ㅋㅋㅋ
그저 운이좋게 1,2는 통과한거더군요 ㅋㅋㅋ
이 문제의 가장 큰팁? 은 분자=분자*분모! 인거같네요 ㅋㅋ
그럼 이만!!!!!!!!!!!!!!!!!!!!!!
생각해보니깐 Hackerrank의 기능? 사용법? 간략하게 설명을 안했네요 ㅋㅋ 다음글은 Hackerrank의 간략한 소개와 사용법 올릴게요 ㅋㅋㅋ
(출처:https://www.hackerrank.com/challenges/s10-weighted-mean/problem)
'IT-Programming&+ > algorithms' 카테고리의 다른 글
코딩놀이! Day 1-3: Standard Deviation(10 Days of Statistics - HackerRank ) using C# (0) | 2018.11.02 |
---|---|
코딩놀이! Day 1-2: Interquartile Range (10 Days of Statistics - HackerRank ) using C# (0) | 2018.11.02 |
코딩놀이! Day 1-1: Quartiles (10 Days of Statistics - HackerRank ) using C# (0) | 2018.11.01 |
코딩놀이! Hackerank 소개 (4) | 2018.10.31 |
코딩놀이! 10 Days of Statistics(HackerRank) (0) | 2018.10.30 |