[JS 문제풀이] 배열-옮겨야 하는 벽돌의 개수

rlorxl·2022년 2월 14일
0

문제

높이가 맞춰지지않게 쌓인 벽돌이 있다. 몇 개의 벽돌 옮겨야 벽돌의 높이가 같아질 수 있을지 구해주는 프로그램을 제작하시오. 입력은 배열 형태의 정수이며, 같은 높이를 맞추기 위해 옮겨야 하는 벽돌의 개수를 반환한다. (단, 입력으로 들어오는 배열은 남는 벽돌 없이 높이가 딱 나눠 떨어지도록 들어온다.)

풀이

벽돌의 개수를 모두 더하고 놓여있는 벽돌의 개수로 나누어 높이(쌓아야하는 개수)를 구한다.
쌓여있는 벽돌의 개수(element)가 쌓여야하는 높이(height)보다 크면 element - height의 값을 배열에 추가한다.

코드

let input3 = [
    [5, 2, 4, 1, 7, 5],
    [12, 8, 10, 11, 9, 5, 8],
    [27, 14, 19, 11, 26, 25, 23, 15],
];

function answer(blocks){
    let result = 0;
    
    const height = blocks.reduce((accum, current) => accum + current) / blocks.length;
    blocks.forEach(element => {
        if(element > height){
            result += element - height;
        }
    });

    return result; 
}

결과

5
6
21
profile
즐겜하는거죠

0개의 댓글