Войти Регистрация
Алгоритмы

139. Порядок продавцов в выдаче

Лёгкая

В блоке «Продавцы рядом» на Авито каждый продавец задан тройкой [имя, рейтинг, отзывы]: рейтинг от 1.0 до 5.0 с шагом 0.1, отзывы — целое число.

Верните имена в порядке показа: выше рейтинг — раньше; при равном рейтинге раньше тот, у кого больше отзывов; если и это совпало — по алфавиту.

В работе: Продавец с 4.9 и 3 отзывами не должен обгонять продавца с 4.9 и 1200 отзывами.

Пример 1

Ввод
sellers = [["Велосклад", 4.9, 3], ["Мир шин", 4.9, 1200], ["Антон", 5.0, 12], ["Дачник", 4.7, 300]]
Вывод
["Антон", "Мир шин", "Велосклад", "Дачник"]

Антон с 5.0 первый, затем двое с 4.9 — по отзывам.

Пример 2

Ввод
sellers = [["Борис", 4.5, 10], ["Анна", 4.5, 10]]
Вывод
["Анна", "Борис"]

Всё совпало — по алфавиту.

Ограничения

  • 0 ≤ n ≤ 10⁵
  • имена различны
  • 0 ≤ отзывы ≤ 10⁶
  • Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def rank_sellers(sellers):
Сортировка с компараторомНесколько ключейцельO(n log n)

Источник: наша задача на данных Авито. Условие пересказано своими словами.