본문 바로가기

Skill Sets/Python

[Python] 평균 구하기(프로그래머스/python/Level 1)

SMALL

안녕하세요! 데코입니다!

 

오늘은 프로그래머스 코딩테스트 연습에 있는 "평균 구하기" 문제를 포스팅하려고 합니다!

 

바로 포스팅 시작할게요! :)

(출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12944)

 


 

1. 문제 :  평균 구하기(Lv. 1)

 


 

2. 문제 설명

 

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

 

[ 제한 사항 ]

 

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

 

[ 입출력 예 ]

 

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

 


 

3. 문제 풀이

import numpy as np

# 1안
def solution(arr):
    answer = np.mean(arr)
    return answer

# 2안
def solution(arr):
    sum_list = 0
    for i in range(len(arr)):
        sum_list += arr[i]
    answer = sum_list/len(arr)
    return answer

 

문제 설명에 맞는 코드를 작성하기 위해서 두 가지 생각이 떠올랐어요!

 

따라서 이번 문제 풀이는 총 2안으로 작성했습니다!

 

#  1안 풀이 설명

# [ 문제 풀이 설명 ]

 

문제를 읽고 처음에 든 생각은, "numpy에 mean 함수를 이용해서 평균 구하면 되는 거 아니야...?" 였어요!

 

import numpy as np를 통해 numpy을 불러오고

 

def solutuon() 사용자 정의 함수에 작성하니까 결과를 확인하니 당연하게도 정답이 나오더라고요!

 

따라서 1안은 array 배열을 가지고 있는 'arr'를 받아

 

np.mean()을 적용하여 평균값을 산출하고

 

이를 answer 변수에 할당해 주어서 return 해주었습니다!

 

이렇게 풀다 보니 매우 짧은 코드로 문제를 풀었습니다!

 

# 1안

def solution(arr):
    # np.mean() 함수를 통하여 평균값 산출

    answer = np.mean(arr)
    print(answer)
    return answer

 

 

#  2안 풀이 설명

# [ 문제 풀이 설명 ]

 

1안의 코드를 통해 문제를 풀긴 했지만

 

이 문제가 단순하게 np.mean()를 사용할 수 있는지 물어보는 문제는 아닐 것이라는 생각을 했어요!

 

따라서 2안은  for 반복문을 이용해서 arr의 길이만큼 실행을 반복해 주고

 

배열에 위치별 정수들을 모두 더해 sum_list이라는 변수에 할당을 해주고

 

계산한 값을 arr의 길이로 나눠서 평균을 구했습니다!

 

arr = [1, 2, 3, 4]를 예로 들어볼게요!

 

sum_list = 1 + 2 + 3 + 4 = 10

 

len(arr) = 4

 

평균값 = 10/4 = 2.5

 

이를 answer 변수에 할당해 주어서 return 해주었습니다!

 

# 2안

def solution(arr):
    sum_list = 0
    # 배열 arr 길이만큼 반복문 실행

    for i in range(len(arr)):
        # arr의 위치별 정수의 합을 sum_list에 할당

        sum_list += arr[i]
    # arr의 정수 합을 arr의 길이로 나눠 평균을 산출

    answer = sum_list/len(arr)
    return answer

 

 

정답...!


 

4. 문제 풀이 후기

 

이번 정수의 값을 가지고 있는 배열 arr이 주어졌을 때

 

배열 arr의 평균값을 구하는 문제였습니다!

 

answer라는 변수에 정답을 담아서 return 해주는 것이

 

빅데이터분석기사 실기 시험과 비슷한 것 같네요!

 

아직은 level 1 문제이다 보니 어려운 부분이 없어서 제가 따로 코멘트할 것은 없습니다!

 



이번 포스팅은 프로그래머스에 있는

 

python을 이용한 코딩테스트 문제를 풀어보았습니다!

 

앞으로도 sql 뿐만 아니라 python을 이용한 코딩테스트도 포스팅을 하려고 합니다!

 

설명이 어려운 부분 혹은 잘 이해가 안 가는 부분

그리고 더 궁금한 내용이 있다면

언제든지 댓글로 남겨주세요!

빠르게 궁금증을 해결해 드릴게요!

공감과 댓글은 큰 힘이 됩니다!

오늘도 블로그 방문해 주시고

포스팅 읽어주셔서 감사합니다!

 

 

LIST