[프로그래머스] 배열의 평균값

김유원·2024년 1월 11일
0

📝24.01.11

🔗 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/120817

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

[C#] 내가 작성한 풀이

using System;

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

[C#] 남이 작성한 풀이

Linq에 Average()라는 메서드가 있었다. 이젠 약간 또 너냐 싶을 정도라서 하루 날잡고 Linq 관련 정리를 해야할 것 같다.

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

[C++] 내가 작성한 풀이

C#과 동일한 방법으로 풀이.

#include <string>
#include <vector>

using namespace std;

double solution(vector<int> numbers) {
    double answer = 0;
    
    for(int i = 0; i < numbers.size(); i++) {
        answer += (double) numbers[i];
    }
    
    answer /= numbers.size();
    
    return answer;
}

[C++] 남이 작성한 풀이

C++에는 numeric이라는 헤더의 accumulate 함수를 활용한 풀이가 깔끔했다.

accumulate(첫번째 iter, 두번째 iter, 합의 초기값) 형태로 쓸 수 있다.

하단의 경우에는 합의 초기값을 0.0으로 해주어 double로 암시적 형변환을 해준 것이다. 해당 위치에 합의 초기값을 0으로 하면 소수 부분이 사라져 틀린 풀이가 된다.

#include <string>
#include <vector>
#include <numeric>
using namespace std;

double solution(vector<int> numbers) {
    double answer = accumulate(numbers.begin(),numbers.end(),0.0) / numbers.size();
    return answer;
}

추가로 앞으로는 깃허브에도 꼬박꼬박 올라갈 예정이다.

🔗 : 프로그래머스 Repository

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보