21 subscriber

C. Секретное сообщение. Чемпионат по программированию Яндекса. Фронтенд, Квалификация

709 full reads
764 story viewsUnique page visitors
709 read the story to the endThat's 93% of the total page views
10 seconds — average reading time

На старой заброшенной базе геодезистов вы нашли код, который возвращает секретные послания, зашифрованные среди географических данных. Скрипт содержит несколько синтаксических ошибок и кажется работает очень медленно. Ваша задача - привести его в порядок.

Формат ввода

const data = [  
    {  
        geometry: [10, 20],  
        text: ’James’  
    },  
    {  
        geometry: [20, 40],  
        text: ’Bond’  
    },  
    {  
        geometry: [5, 40],  
        text: ’Bond’  
    }  
];  
const dictionary = [’James’, ’Bond’];

Формат вывода

Bond James Bond

Примечания

В файле task.js описан метод, который принимает на вход два аргумента - data и dictionary. В переменной data передается массив объектов вида:{  
    geometry: [number, number];  
    text: string;  
}

В переменной dictionary передается массив строк - слова, которые мы умеем расшифровывать.

dictionary: string[];

Чтобы получить секретное сообщение, требуется отсортировать все объекты из массива data по первой координате из поля geometry по возрастанию, а затем собрать в строку все поля text из отсортированного массива. В массиве могут быть объекты с одинаковой первой координатой, в этом случае их сообщения одинаковы.

К сожалению, сообщение закодировано на иностранном языке, а переводчик знает только слова, заданные в переменной dictionary. Поэтому если в поле text встречается слово, которого нет в массиве dictionary, сообщение невозможно расшифровать.

Программа должна вернуть полученное сообщение или строку "Unreadable message"(в случае, если сообщение содержит слова, которых нет в словаре).

Решение необходимо предоставить в виде исправленого модуля.

Вердикт RE также означает, что отправленное решение неверно.