Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 등차수열의 항 찾기
- map()
- 단방향 연결리스트
- CSS
- Link
- 범용 선택자
- 배열과 연결리스트의 차이
- for..of
- visibility : hidden
- Sort
- Array.from()
- 고차함수
- 객체
- 쌍방향 연결리스트
- filter()
- innerhtml
- 인접 형제 선택자 결합
- 백준알고리즘
- invalid assignment left-hand side
- 배열의 오름차순
- disabled
- indexOf
- 배열의 내림차순
- 양방향 연결리스트
- display : none
- 일반 형제 선택자 결합
- classList.contains(string)
- nth-child()
- Em
- 가상 요소 선택자
Archives
- Today
- Total
프론트엔드 센트럴파크 (☞゚ヮ゚)☞
벽돌 옮기기 본문
벽돌 높이를 맞추지 않은채 벽이 쌓여져 있다.
몇 개의 벽돌을 옮겨야 벽돌의 높이가 같아질 수 있을지 구해주는 프로그램을 제작하시오.
입력은 배열 형태의 정수이며, 같은 높이를 맞추기 위해 옮겨야 하는 벽돌의 개수를 반환한다.
단, 입력으로 들어오는 배열은 남는 벽돌 없이 높이가 딱 나눠 떨어지도록 들어온다.
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