[그 외]/ㄴ (코테연습 : 파이썬 ver)
[프로그래머스] 평균 구하기 (파이썬)
__hyeon2__
2021. 6. 16. 16:57
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12944
코딩테스트 연습 - 평균 구하기
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr
programmers.co.kr
<나의 풀이>
# 1번 풀이
def solution(arr):
answer = sum(i for i in arr) / len(arr)
return answer
# 2번 풀이
def solution(arr):
answer = 0
cnt = 0
for i in arr :
answer += i
cnt += 1
return answer / cnt
1번 풀이는 내장 함수를 이용해서 풀어봤고,
2번 풀이는 내장 함수를 사용하지 않고 풀어봤다.
가끔 코데에서 내장 함수 사용을 금지하는 경우가 있다고 해서
쉬운 문제여도 되도록 내장 함수를 사용 안 하고도 풀어봐야겠다.
다른 사람의 풀이를 보니 sum함수 안에 for를 안 해도 됐더라..!
역시 문제는 많이 풀어봐야하는 것 같다👊🏻
<다른 사람의 풀이>
def average(list):
if len(list) == 0:
return 0
return sum(list) / len(list)
# <배운점>
# => sum함수는 for를 안써도 list 요소를 다 더해준다는 점
from functools import reduce
def average(list):
return reduce(lambda x, y : x + y, list) / len(list)
# <배운점>
# => reduce와 람다 사용법을 배울 수 있었음
'''
< 더 알아보기 >
-----------------------------------------------------------------------
# reduce() : 여러 개의 데이터를 대상으로 주로 누적 집계를 내기 위해서 사용
=> from functools import reduce 필수
=> reduce(집계함수,순회 가능한 데이터[, 초기값])
-----------------------------------------------------------------------
# lambda 형식
=> 간단한 표현식을 함수처럼 다룰 수 있게 해주는 표현
=> 익명함수이기 때문에 한 번 쓰이고 다음 줄로 넘어가면 힙메모리영역에서 증발함
=> lambda 인자 : 형식
-----------------------------------------------------------------------
# 코드 해석
lst = [5,3,4]
return reduce(lambda x, y : x + y, list) / len(list)
=> lst에서 5와 3을 꺼내 더해줌
=> 그 결과에 4를 꺼내 더해줌
=> lst의 크기만큼 반복
=> 모든 요소를 다 더 한 후에 lst의 크기만큼 나눠줌
=> 그 결과를 반환
-----------------------------------------------------------------------
'''
import statistics
def average(list):
return statistics.mean(list)
# <배운점>
# => statistice 모듈에 대해 배울 수 있었음
'''
< 더 알아보기 >
-----------------------------------------------------------------------
# statistics : 수학 통계와 관련된 함수가 들어 있는 모듈
-----------------------------------------------------------------------
# mean(data) : 데이터의 산술평균을 구해주는 함수
-----------------------------------------------------------------------
# 코드 해석
lst = [5,3,4]
return statistics.mean(lst)
=> statistics 모듈의 mean 함수를 가져옴
=> lst의 산술평균을 구해서 반환함
-----------------------------------------------------------------------
'''
728x90
반응형