알고리즘

[Programmers algorithm👀] 배열의 평균값

미리구 2022. 12. 7. 17:28

1. 문제설명

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

[ 제한조건 ]

0 ≤ numbers의 원소 ≤ 1,000

1 ≤ numbers의 길이 ≤ 100

정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.

[ 입출력예시 ]

numbers result
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5
[80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0

[ 답안 포맷 ]

function solution(numbers) {
    var answer = 0;
    return answer;
}

2. 문제풀이

function solution(numbers) {
    // numbers 배열 원소 총 합의 평균
    const answer = numbers.reduce((acc, cur) => acc + cur, 0) / numbers.length
    
    // 평균의 소숫점 첫째 자릿수가 0 또는 5인 경우, 소수점 첫째 자리까지 표기
    // 아닌 경우, 정수만 표기
    if (answer.toFixed(1).toString().split(".")[1] === "0" || "5") {
        return answer.toFixed(1)
    }
    
    return Math.floor(answer)
}

문제를 잘못 이해했던것 같다.

문제의 제한사항을 보고 소숫점 첫째 자리수가  .0 또는 .5일경우에는 소숫점 첫째자리수까지 표기해주라는 건 줄 알고

if문을 사용해서 조건을 줬던건데 필요가 없었다..ㅋㅋㅋ

이 부분을 빼면 아주 간단하게 코드를 작성할 수 있었다.

function solution(numbers) {
    // numbers 배열 원소 총 합의 평균
    return answer = numbers.reduce((acc, cur) => acc + cur, 0) / numbers.length
}