Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задачка на JavaScript

bulgakovog Знаток (386), на голосовании 1 год назад
Напишите функцию layout, которая будет заполнять эту сетку сверху вниз таким образом, чтобы не образовывались пустоты

Функция на вход принимает массив уникальных блоков

Сетка может быть разной ширины

Блок имеет свой уникальный номер

Форма блока произвольная, ширина всегда равна ширине сетки

Блоки имеют возможность перевернуться, чтобы встроиться в сетку

После того, как все блоки выстроятся, в компоненте не должно остаться пустот

Сайдбар всегда заполняется полностью (висящих пустот на любом наборе данных не будет)

Функция должна возвращать отчет о порядке выставления блоков и манипуляций с их поворотами

interface Block {
id: number;
form: number[][];
}

interface LayoutResult {
blockId: number;
position: number;
isRotated: boolean;
}

function layout(blocks: Block[]): LayoutResult[] {
// code
}
Решение должно представлять из себя Node.js модуль, экспортирующий функцию layout.

module.exports = function layout(blocks) { /* ... */ }
Голосование за лучший ответ
Похожие вопросы