본문 바로가기

javaScript/알고리즘 문제 풀이

배열의 평균값을 구하기

자기 옆에 있는 숫자를 더하여 평균을 구하시오.

배열에 0 또는 1 값이 있거나 null 또는 None 인 경우 메서드에서 빈 배열을 반환해야합니다.


1
2
Input:  [ 1, 3, 5, 1, -10]
Output:  [ 2, 4, 3, -4.5]
cs



내 답


1
2
3
4
5
function averages(numbers) {
 
  return numbers==null ? []:numbers.map((value,i) => { return (numbers[i]+numbers[i+1])/2;}).splice(0,numbers.length-1);
 
}
cs







best으로 뽑힌 답변1


1
2
3
4
5
6
7
8
9
10
11
12
13
function averages(numbers) {
 
  var final = [];
 
  if (numbers) {
    for (var i=0; i<numbers.length-1; i++) {
      final.push((numbers[i] + numbers[i+1]) / 2);
    }
  }
  return final;
 
}
 
cs



best으로 뽑힌 답변2


1
2
3
4
5
function averages(numbers) {
 
  return numbers ? numbers.map((v, i, a) => (v + a[i + 1]) / 2).slice(0-1) : [];
 
}
cs



배운 점

value는 실행되고 있는 숫자를 가르키므로 numbers[i] 대신에 v로 대신하여 표기가 가능하다.

slice는 array의 length로 표시하지 않더라도 -1이라 표기하면 맨끝에서 첫번째를 가리키므로 원하는 배열 선택이 가능한다.

그리고 이미 앞에 return 표시가 있기 때문에 굳이 기재하지 않아도 되며, map return 넣지 않으면 null로 인한 에러가 생기지 않는다.

numbers === null ?을 표기하지 않고, numbers ? 로 표기가능하다.