최대 1 분 소요

1차원 배열(1546번)

입력한 숫자를 주어진 공식으로 변형하여 그 수의 평균을 구하는 문제 문제 푸는건 그렇게 어렵진 않았지만 백준에서 자꾸 틀렸다고 나와서 멘붕…

백준에서는 console.log()에 식을 쓰지 않고, 최대한 함수를 사용해야 맞다고 나오는 것 같다.

for문을 사용해서 합을 구한뒤 평균을 구한 코드는 틀렸지만, 배열의 합을 구하는 함수를 사용해서 답을 구하니 바로 맞았다.

사용한 함수

오름차순으로 정렬하는 함수 : Array.sort((a,b) => a - b)

배열의 합 구하는 함수 : let avg = arr.reduce((a, b) => a + b)

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdin
});

let input = [];

rl.on('line', function (line){
    input.push(line);

}).on('close',function (){

    let N = Number(input[0]);
    let A = input[1].split(' ').map(Number);

    // 오름차순으로 정렬하는 함수 : Array.sort((a,b) => a - b)
    A.sort((a, b) => a - b);

    M = A[A.length-1];
    let arr = []

    for (let i = 0; i<A.length; i++){
        arr.push(A[i]/M*100)
    }
    console.log(arr)

    // for문을 사용하여 합 구하기 => 틀림
    // let sum = 0.0;
    // for (let i = 0; i<arr.length; i++){
    //     sum = sum + arr[i];
    // }

    // 배열의 합 구하는 함수 사용 => 맞음
    let avg = arr.reduce((a, b) => a + b) / N;
    console.log(avg)

    process.exit();
});