JSITCLUB

파이썬 - 프로그래머스 - 평균 구하기 본문

파이썬/문제풀이

파이썬 - 프로그래머스 - 평균 구하기

jsitclub 2020. 5. 26. 21:32

프로그래머스 level 1

문제 설명

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

제한사항

  • arr은 길이 1 이상, 100 이하인 배열입니다.

  • arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

입출력 예

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

 

 

코딩테스트 연습 - 평균 구하기

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr

programmers.co.kr

 

풀이 및 코드

 

문제요약

배열의 평균 구하기

문제 설명

"서울에서 김서방 찾기" 문제에서 이야기했듯이 프로그래머스 문제를 파이썬으로 풀 때 배열이라는 용어가 나오면, 리스트로 생각하고 푸시면 됩니다. 사실 배열(array)과 리스트(list)는 전혀 다르지만, 그냥 리스트를 배열이라고 사용하는구나 생각하고 푸시면 됩니다.

먼저 리스트의 평균값을 구하려면 리스트의 모든 요소를 더한 후 리스트의 요소의 개수로 나누면 된다는 것은 알고 계시죠^^

위에서 우리는 두 가지 작업을 해야 한다는 것을 알게 됩니다. (참고로 이와 같이 문제를 풀어 나가는 순서와 방법을 '알고리즘'이라고 합니다.)

1. 리스트의 모든 요소의 합계를 구한다. 

2. 1에서 구한 값을 요소의 개수로 나눈다.

 

그러면 정리한 알고리즘을 하나씩 구현해 보겠습니다.

1. 리스트의 요소의 합계

모든 값의 합계를 구하려면 변수를 하나 만들어서 그 변수에 각각의 값들을 더해 갑니다.

예를 들어 [10,20,30,40]의 모든 값을 더하려면

sum=0
sum=sum+10
sum=sum+20
sum=sum+30
sum=sum+40
print(sum)

위 와 같이 하면 구할 수 있습니다.

이것을 반복문을 이용해 표현하면

a=[10,20,30,40]
sum=0
for n in a:
   sum+=n

print(sum)

또는 

a=[10,20,30,40]
sum=0
for i in range(len(a)):
   sum+=a[i]

print(sum)

  으로 바꿀 수 있습니다.

2. 합계 나누기 리스트의 요소 수

나열형의 요소수를 구할 때는 len() 함수를 사용합니다.

 

결과코드

def solution(arr):
    answer=0
    sum=0
    for n in arr:
   	    sum+=n
    
    answer=sum/len(arr)
    
    return answer

 

그런데, 위의 코드에서 굳이 answer라는 변수는 사용하지 않아도 되기 때문에 다음과 같이 바꿀 수 있으며,

def solution(arr):
    sum=0
    for n in arr:
   	    sum+=n
    return sum/len(arr)

 

파이썬에는 나열형의 요소합을 구해주는 sum()이라는 함수가 있기 때문에 다음과 같이 바꿀 수도 있습니다.

def solution(arr):
    return sum(arr)/len(arr)

 

짧게 줄인 코드가 반드시 좋다고는 할 수 없으니, 상황에 맞게 사용하기 바랍니다.~

Comments