알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 풀어내기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것, 계산을 실행하기 위한 단계적 절차를 의미한다. 즉, 문제풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다. 프로그램명령어의 집합을 의미하기도 한다.
프로그래머스의 '평균 구하기' 문제 입니다.
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
function solution(arr) {
const sumArray=arr.reduce(( accumulator,currentValue ) => accumulator+currentValue)
const result= sumArray/arr.length
return result;
}
맨 처음 풀었던 저의 풀이 방식 입니다.
이렇게 푸는 경우 테스트 2는 통과하지만 1은 통과하지 않습니다.
테스트 2의 입출력 예는 [5.5]이므로 return 되야하는 값이 5로 반환 되야 합니다.
테스트 1의 입출력 예는 [1,2,3,4]로 return 되야하는 값이 2.5로 되야 합니다.
문제 의도를 잘못 파악했다는 것을 파악하여 reduce가 아닌 배열에 대한 접근 방식을 다시 생각해서 풀기 시작 했습니다.
결과적으로는 /2가 아닌 arr.length 길이값으로 나누면 해결 됩니다ㅏ :-)
function solution(arr) { const sumArray=arr.reduce(( accumulator, currentValue ) => accumulator + currentValue,0) const result= sumArray /2 return result; }