프론트엔드 센트럴파크 (☞゚ヮ゚)☞

벽돌 옮기기 본문

Algorism

벽돌 옮기기

자라나라나무나무나 2022. 7. 26. 21:58
벽돌 높이를 맞추지 않은채 벽이 쌓여져 있다.
몇 개의 벽돌을 옮겨야 벽돌의 높이가 같아질 수 있을지 구해주는 프로그램을 제작하시오.
입력은 배열 형태의 정수이며, 같은 높이를 맞추기 위해 옮겨야 하는 벽돌의 개수를 반환한다.
단, 입력으로 들어오는 배열은 남는 벽돌 없이 높이가 딱 나눠 떨어지도록 들어온다.
function answer(blocks) {
  let result = 0;

  // 1. 벽돌 높이 평균
  let avg = 0;
  for (let i = 0; i < blocks.length; i++) {
    avg += blocks[i];
  }
  avg /= blocks.length;

  // 2. 현재 벽돌 높이 - 벽돌 높이 평균 => 옮겨야 할 벽돌 개수
  for (let i = 0; i < blocks.length; i++) {
    if (blocks[i] > avg) {
      result += blocks[i] - avg;
    }
  }

  return result;
}

let input = [

  [5, 2, 4, 1, 7, 5],

  [12, 8, 10, 11, 9, 5, 8],

  [27, 14, 19, 11, 26, 25, 23, 15],
];

for (let i = 0; i < input.length; i++) {
  console.log(`#${i + 1} ${answer(input[i])}`);
}

'Algorism' 카테고리의 다른 글

두 자연수를 입력받아 각 자리의 빈도수 구하기  (0) 2022.07.26
ox 퀴즈  (0) 2022.07.25
나무 그리기  (0) 2022.07.22
배열의 element들의 값이 많을 때, 정해진 합 구하기  (0) 2022.07.22
두 수 최대 합  (0) 2022.07.21
Comments