코딩놀이! 10 Days of Statistics(HackerRank)
Day 1-3: Standard Deviation
세 번째 문제!
Objective In this challenge, we practice calculating standard deviation. 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 the array. Constraints
Output Format Print the standard deviation on a new line, rounded to a scale of decimal place (i.e., format). Sample Input
Sample Output
Explanation First, we find the mean: Next, we calculate the squared distance from the mean, , for each : Now we can compute , so: Once rounded to a scale of decimal place, our result is . |
음 세번째 문제는 Standard Deviation!!! 간단한 표준 편차 구하기 입니다.
그럼 바로 문제 해석 들어갑니닷!
문제해석!
1. 입력받을 숫자의 갯수를 n 입력받습니다.
2. n 개 만큼 입력 받는다.
3. 입력 받은 n개의 숫자 평균을 구한다.
4. n개의 숫자중 (첫번째 숫자 - 평균) + (두번째 숫자 - 평균) + .....(n번째 숫자 - 평균) 을 모두 더한다
5. 다시 n으로 나눈다!
6. 루트씌운다! 끝.
계산식!!!
1.없음! 필요...할까요??
(출처:http://www.ktword.co.kr/abbr_view.php?m_temp1=1657)
역시 말보단 코딩!
class Solution { static void Main(String[] args) { /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution */ int inputCount = Convert.ToInt32(Console.ReadLine()); int[] arr_values = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse); Console.WriteLine(standardDeviation(arr_values, inputCount)); } static double standardDeviation(int[] arr_values, int inputCount) { if (inputCount != arr_values.Length) { //return fail;throwException } int arrSum = 0; foreach(int values in arr_values) { arrSum += values; } int arrAvg = arrSum / inputCount; double deviationSum = 0; foreach(int value in arr_values) { deviationSum += Math.Pow(value - arrAvg, 2); } return Math.Round(Math.Sqrt(deviationSum/inputCount),1); } } |
후기!. 사실 이 문제를 어쩌면 엄청나게 고민하면서 계산식이 들어가야 하는게 제대로된 공부라고 생각해요.
사실 제가 짠 코드는 보시는바와 같이
C#의 Math라는 Class를 이용해서 정말 편리하게 풀었어요 ㅎㅎ
Math.Pow(제곱대상, 몇제곱?) - 제곱근을 나타내는거고요 Pow의 리턴타입은 double입니다.
Math.Sqrt(루트안에값, 루트몇?) - 루트를 구해주는 함수입니다....이거없으면ㅠㅠ정말 고민이였을거예요...까먹은지가 너무 오래되서 ㅎㅎ
Math Class에 대한 자세한 설명은 (https://docs.microsoft.com/ko-kr/dotnet/api/system.math?view=netframework-4.7.2) 여기 나와있습니다. 정말 막강한 기능이 많아요. 똑똑한 사람들이 짜놓은 공통함수? 라고 생각되네요.
개발할때 자신만의 공통함수를 만들어 놓는것도 중요하지만 이미 Framework에서 지원하는 기능은 잘 이용하는게 좋겠죠?ㅎㅎ
RunCode!!
Congratulations! You have passed the sample test cases. Click the submit button to run your code against all the test cases. |
역시나 크흐흐 Easy만 풀고싶다능...
그렇타면! submit!!!!!!!!!
예쑤!~ 다시한번 30점!! 득템입니다 ㅎㅎ
Day 1 에는 3문제 모두 Clear!!
Day 2에도...3문제가 있네요...
그럼이만!
(출처:https://www.hackerrank.com/challenges/s10-standard-deviation/problem)
'IT-Programming&+ > algorithms' 카테고리의 다른 글
코딩놀이! Day 2-2: More Dice(10 Days of Statistics - HackerRank ) (0) | 2018.11.03 |
---|---|
코딩놀이! Day 2-1: Basic Probability(10 Days of Statistics - HackerRank ) (0) | 2018.11.03 |
코딩놀이! 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 |