프로그래머스 코딩테스트 연습

[프로그래머스 코테 C#] Lv1. 평균 구하기

노재두내 2024. 9. 6. 17:28

문제 설명

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

제한사항

  • arr은 길이 1 이상, 100 이하인 배열입니다.
  • arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

입출력 예

arrreturn
[1,2,3,4] 2.5
[5,5] 5

using System;

public class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        int sum=0;
        for(int i=0;i<arr.Length;i++)
        {
            sum+=arr[i];    
        }
        answer=sum/arr.Length;
        return answer;
    }
}

이렇게 작성했는데 틀리길래 

 

Sum, arr.Length , answer 가 제대로 출력되는지 출력해보았다.

using System;

public class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        int sum=0;
        for(int i=0;i<arr.Length;i++)
        {
            sum+=arr[i];    
        }
        Console.WriteLine(sum);
        Console.WriteLine(arr.Length);
        answer=sum/arr.Length;
        Console.WriteLine(answer);
        return answer;
    }
}

이처럼 answer이 소수점이 출력이 안되어서 틀린거라는걸 알 수 있다 .

 

하지만 소수점 출력 어떻게 했는지 기억이 안남 ,, 찾아보자 ^^

//사용자 지정 숫자 형식
        string answer1=answer.ToString("0.0");

이런걸 찾아보고 있는데 이미 answer이 2로 답이 나왔기 때문에 여기서 소수점으로 변경한다고 해도 

answer1은 2.0일뿐이다.

 

💡그래서 생각난게 아예 sum을 double 로 선언해야겠구나 

public class Solution {
    public double solution(int[] arr) {
        double sum=0.0;
        
        for(int i=0;i<arr.Length;i++)
        {
            sum+=arr[i];    
        }
        
        return sum/arr.Length;
    }
}

answer에 값 저장하지 않고 바로 return 해서 가장 간략하게 코드 작성

 

정답 !!

 


다른사람 풀이

using System.Linq;
public class Solution {
    public double solution(int[] arr) {
        return arr.Average();
    }
}

Wow Average() 메서드를 써서 한줄로 해결했다.