[연습문제] 평균 구하기

2024. 11. 27. 18:00입문문제

https://school.programmers.co.kr/learn/courses/30/lessons/12944

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


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


제한사항

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

입출력 예

arr return
[1, 2, 3, 4] 2.5
[5, 5] 5

주어진 배열(리스트)에 포함된 원소들에 대해서 그 평균을 구하는 문제입니다.

 

보통 숫자들의 평균을 구하라고 한다면 숫자들의 총합을 그 개수로 나눠줘서 구합니다.

이때 총합을 반복문을 통해서 구할 수도 있고, 내장 함수를 사용해서도 구할 수 있죠.

 

C언어에서는 반복문을 통해 배열의 총합을 구하고 arr_len으로 나눠줘 평균을 구하고, 파이썬에서는 내장 함수인 sum과 len을 사용해 평균을 구하면 될 것 같네요.

 

정답 코드를 작성해보겠습니다.

 

1. C

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// arr_len은 배열 arr의 길이입니다.
double solution(int arr[], size_t arr_len) {
    // 평균을 기록할 answer
    double answer = 0;
    // 반복문을 사용해 모든 배열의 원소를 더합니다.
    for (int i = 0; i < arr_len; i++) {
        answer += arr[i];
    }
    // 총합을 개수로 나눠 평균을 구합니다.
    answer /= arr_len;
    return answer;
}

 

2. 파이썬

def solution(arr):
    # 평균 = 총합 / 개수
    answer = sum(arr) / len(arr)
    return answer

 

제가 알기론 sum 함수도 내부적으로는 반복문을 사용하는 것으로 알고 있습니다.

따라서 C와 파이썬으로 구현한 두 코드 모두 시간 복잡도가 동일할 것 같네요.