[코딩테스트] LV.0 배열의 평균값 - JavaScript

JooSehyun·2023년 6월 10일
0

코딩테스트

목록 보기
10/17
post-thumbnail

프로그래머스 - 코딩테스트


LV.0 배열의 평균값

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

제한사항

0 ≤ numbers의 원소 ≤ 1,000
1 ≤ numbers의 길이 ≤ 100
정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.


풀이

내 풀이

좀 오래 고민했다..
매개변수 numbers가 있고 sum은 0에 담아주고 for문을 돌렸고 i는 0부터 시작 numbers의 length만큼 반복문이 돌아간다.
sum에 number의 배열길이만큼 sum에 더한 값을 담아주고 numbers.length를 나눠준 평균값이 나온다.

function solution(numbers){
    let sum = 0;
    for(let i = 0; i < numbers.length; i++){
        sum += numbers[i]
    }
    return sum/numbers.length
}

정답

function solution(num1, num2) {
  let quotient = Math.floor(num1 / num2);
  return quotient;
}

위의 코드에서는 주어진 정수 배열 numbers의 원소들의 평균값을 계산하여 반환합니다. 초기값 sum을 0으로 설정하고, for 반복문을 사용하여 배열의 모든 원소를 순회하면서 값을 더해줍니다. 그 후, sum을 배열의 길이로 나눈 평균값을 계산하고 average 변수에 저장합니다. 마지막으로 average를 반환합니다. 이제 이 함수를 사용하여 주어진 배열의 평균값을 얻을 수 있습니다.


reduce를 사용한 정답

정답

function solution(num1, num2) {
  let quotient = Math.floor(num1 / num2);
  return quotient;
}

위의 코드에서는 reduce 함수를 활용하여 주어진 정수 배열 numbers의 원소들의 합을 계산합니다. reduce 함수는 배열을 순회하면서 각 원소를 누적값에 더해주는 동작을 수행합니다. 초기값 0을 설정하고, acc 매개변수에는 누적값이 전달되고 curr 매개변수에는 현재 순회 중인 원소가 전달됩니다. acc + curr을 반환하면 이전 누적값에 현재 원소를 더한 값을 다음 순회에서 사용하게 됩니다. 따라서 reduce 함수의 결과로 배열의 모든 원소의 합이 계산되고 sum 변수에 저장됩니다.

그 후, sum을 배열의 길이로 나눈 평균값을 계산하고 average 변수에 저장합니다. 마지막으로 average를 반환합니다. 이제 이 함수를 사용하여 주어진 배열의 평균값을 얻을 수 있습니다.

reduce 함수는 함수형 프로그래밍에서 유용하게 사용되는 고차함수입니다. 배열을 순회하며 값을 누적하거나 변형하는 작업에 활용할 수 있습니다.

0개의 댓글